azonenberg changed the topic of #scopehal to: libscopehal, libscopeprotocols, and glscopeclient development and testing | https://github.com/azonenberg/scopehal-apps, https://github.com/azonenberg/scopehal, https://github.com/azonenberg/scopehal-docs | Logs: https://freenode.irclog.whitequark.org/scopehal
* azonenberg fixes
<Kenley> CMake Error: Parse error in command line argument: -DENABLE_SHARED
<Kenley> Should be: VAR:type=value
<_whitenotifier-f> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JT2vl
<_whitenotifier-f> [scopehal-docs] azonenberg a81a1c1 - Fixed typo
<azonenberg> -DENABLE_SHARED=1 then?
<azonenberg> or ON
<azonenberg> yeah it should be -DENABLE_SHARED=ON
<_whitenotifier-f> [scopehal-docs] azonenberg pushed 1 commit to master [+0/-0/±1] https://git.io/JT2vw
<_whitenotifier-f> [scopehal-docs] azonenberg a177bbc - Updated build instructions for ffts to use -DENABLE_SHARED=ON
<Kenley> Instructions work for Linux.
<Kenley> Windows is still broken.
<azonenberg> That was the expected result
<azonenberg> the lack of shared ffts wouldn't break things until later
<azonenberg> I wanted to fix it while i was thinking about it though
<azonenberg> Just to confirm, building libscopehal successfully finds FFTS
<azonenberg> and it's not until it starts compiling glscopeclient that it fails?
<azonenberg> nvm
<azonenberg> just looked, scopehal isnt finding it either
<azonenberg> This sounds like FindFFTS is either finding the wrong path or some CMake script isn't setting the include search path right
<azonenberg> Bird|otherbox: thoughts?
<Bird|otherbox> could be either -- what does the CMakeCache contain for the LIBFFTS_INCLUDE_DIR in the failing case?
<Bird|otherbox> Kenley ^
<Kenley> How do I find out? Is it visible in the output or do I have to dump it out somewhere?
<Kenley> Hold on. I think I found the issue.
<Kenley> Congratulations. We have our first working Windows build: https://github.com/kench/scopehal-apps/runs/1295587011?check_suite_focus=true
<azonenberg> Awesome! Lots of warnings but that was expected
<azonenberg> the windows build is a lot less mature than the linux
<Kenley> Can I send you a PR for this?
<azonenberg> Yeah sure
<Kenley> I want to get this merged and then work on enabling debug and build artifacts.
<azonenberg> This is good enough to merge
<azonenberg> there are definitely issues, for example printf %zu seems to not work in that gcc version
<azonenberg> on windows
<azonenberg> So we're gonna have to eliminate that even though it's the proper portable C99 way to print a size_t
<azonenberg> lots of size casting problems we need to work on
<azonenberg> but hey, it compiles which is a start
<_whitenotifier-f> [scopehal-apps] kench opened pull request #244: Enable Windows build in GitHub Actions - https://git.io/JT2J8
<Bird|otherbox> Kenley: what was the issue?
<_whitenotifier-f> [scopehal-apps] azonenberg closed pull request #244: Enable Windows build in GitHub Actions - https://git.io/JT2J8
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 9 commits to master [+0/-0/±9] https://git.io/JT2JQ
<_whitenotifier-f> [scopehal-apps] kench 873378a - Add build target for Windows
<_whitenotifier-f> [scopehal-apps] kench 1023d0f - Use bash when cloning FFTS repository
<_whitenotifier-f> [scopehal-apps] kench 6d14d81 - Set an upper concurrency limit when building Not everyone has 100GB of RAM when building...
<_whitenotifier-f> [scopehal-apps] ... and 6 more commits.
<_whitenotifier-f> [scopehal-apps] azonenberg opened issue #245: Better handling of nospectrum/nodigital - https://git.io/JT2UZ
<_whitenotifier-f> [scopehal-apps] azonenberg labeled issue #245: Better handling of nospectrum/nodigital - https://git.io/JT2UZ
<_whitenotifier-f> [scopehal-apps] kench forked the repository - https://git.io/JTBRg
<_whitenotifier-f> [scopehal] azonenberg opened issue #314: Eye pattern: allow clock to be specified as center or edge aligned - https://git.io/JT2Ua
<_whitenotifier-f> [scopehal] azonenberg labeled issue #314: Eye pattern: allow clock to be specified as center or edge aligned - https://git.io/JT2Ua
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2] https://git.io/JT2LZ
<_whitenotifier-f> [scopehal] azonenberg 7f3563b - EyePattern: Now accept rising, falling, or double rate edges - but might not work right with non-sparse clocks. Fixes #220.
<_whitenotifier-f> [scopehal] azonenberg closed issue #220: Eye pattern: allow clock to be specified as rising, falling, or both edges - https://git.io/JJ673
Degi has quit [Ping timeout: 256 seconds]
Degi has joined #scopehal
<azonenberg> Woo!
<azonenberg> Meanwhile, i'm close to having eye patterns working on low speed serial data
<azonenberg> i.e. stuff like spi and i2c rather than just high speed SERDES
<azonenberg> Which can actually be useful given the atrocious wiring harnesses those protocols are sometimes run over :p
<Kenley> Just as a heads up, you're still going to need libatkmm-1.6.1-dll libcairo-1.0-1.dll libgdkmm-3.0-1.dll libgiomm-2.4-1.dll to run the Windows binaries.
<Kenley> I don't have them on my desktop.
<azonenberg> yeah those are standard GTK binaries. We're a long ways from being ready to have official usable binary releases still i think
<azonenberg> in terms of stability
<azonenberg> so if the CI binaries aren't usable without some prep, that's fine
<Kenley> I want to add a note about this. Do we use GitHub wikis?
Pretzel4Life has joined #scopehal
<azonenberg> Kenley: Not yet, but somebody's gotta be the first
<azonenberg> Right now the pdf manual is the only official documentation and we don't have official releases
<azonenberg> in fact, CI builds of the pdf manual would be great to be able to link to from somewhere as an unofficial "latest manual"
Pretzel4Ever has quit [Ping timeout: 246 seconds]
<azonenberg> the one on antikernel.net/temp is just my working draft
<azonenberg> and not always the most up to date
<Kenley> I only see a .tex file and no PDF.
<azonenberg> Kenley: there's another cmake flag to build the docs
<Kenley> I can upload the .tex as an artifact.
<azonenberg> it's off by default since a lot of people don't have full texlive installed
<azonenberg> -DBUILD_DOCS=ON
<Kenley> Where does the PDF end up?
<azonenberg> $build/doc/
<azonenberg> glscopeclient-manual.pdf
electronic_eel has quit [Ping timeout: 260 seconds]
electronic_eel has joined #scopehal
<azonenberg> Kenley: mingw might not ship with asan by default
<azonenberg> can you look up if it's a separate pacakge you need to set up?
<azonenberg> hmm
<azonenberg> some quick googling suggests that gcc does not provide asan on Windows, but clang might
<azonenberg> for now, leave debug off on windows i guess
<azonenberg> I expect the general maturity of the windows build to lag linux as it gets much less attention paid to it
<azonenberg> as we get more windows users/devs we can improve
<azonenberg> For the time being with our limited resources i want to avoid burning too much effort on windows stuff at the expense of linux
<_whitenotifier-f> [scopehal-apps] kench opened pull request #246: Add support for uploading artifacts and enable Linux debug builds - https://git.io/JT2nW
<Kenley> That pull request is ready to merge. :)
<Kenley> Added initial notes about CI-related caveats: https://github.com/azonenberg/scopehal-apps/wiki/Continuous-Integration
<azonenberg> Kenley: you're missing uploading of the styles/shaders etc on the linux builds
<azonenberg> also you upload scopeprotocols twice on windows
<Kenley> Whoops!
<_whitenotifier-f> [scopehal-apps] kench synchronize pull request #246: Add support for uploading artifacts and enable Linux debug builds - https://git.io/JT2nW
<Kenley> Testing an fix right now.
<Kenley> PR updated!
<_whitenotifier-f> [scopehal] azonenberg pushed 5 commits to master [+0/-0/±6] https://git.io/JT28m
<_whitenotifier-f> [scopehal] azonenberg d1ce0e1 - Added Filter::FindRising/FallingEdges()
<_whitenotifier-f> [scopehal] azonenberg a8b4944 - PulseWidthTrigger: support more conditional operators on Tek scopes
<_whitenotifier-f> [scopehal] azonenberg 437c00d - UartClockRecoveryFilter: now emit single-rate clock with rising edge at middle of UI
<_whitenotifier-f> [scopehal] ... and 2 more commits.
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 6 commits to master [+0/-0/±10] https://git.io/JT28O
<_whitenotifier-f> [scopehal-apps] azonenberg a055688 - Added __GNUC__ definition to cppcheck so __noreturn is properly detected. Fixes #237.
<_whitenotifier-f> [scopehal-apps] azonenberg 9fb5b16 - Updated docs
<_whitenotifier-f> [scopehal-apps] azonenberg 6bd55ca - Added --nospectrum argument to hide spectrum channels during initial startup
<_whitenotifier-f> [scopehal-apps] ... and 3 more commits.
<_whitenotifier-f> [scopehal-apps] azonenberg closed issue #237: cppcheck false positives due to LogFatal not being parsed as noreturn - https://git.io/JTn6O
<_whitenotifier-f> [scopehal-apps] azonenberg closed issue #243: CI builds should set -DCMAKE_BUILD_TYPE=DEBUG - https://git.io/JTgXC
<_whitenotifier-f> [scopehal-apps] azonenberg closed pull request #246: Add support for uploading artifacts and enable Linux debug builds - https://git.io/JT2nW
<_whitenotifier-f> [scopehal-apps] azonenberg pushed 10 commits to master [+0/-0/±10] https://git.io/JT28Z
<_whitenotifier-f> [scopehal-apps] kench daf8a59 - Add Upload Artifacts step
<_whitenotifier-f> [scopehal-apps] kench 7dc23c0 - Update build.yml
<_whitenotifier-f> [scopehal-apps] kench 96f8c04 - Update build.yml
<_whitenotifier-f> [scopehal-apps] ... and 7 more commits.
<azonenberg> Kenley: Merged
<azonenberg> Kenley: So what's your next move? I think we've gone about as far as we can on the CI side without significant fixes to the windows build in general. Which, while necessary, may not be the highest priority
<azonenberg> Or did you have more stuff still planned?
<azonenberg> Enabling static analysis in CI should be done eventually but Bird|otherbox has some debugging to do before that will be ready
<Kenley> Ideas I had include initial *Getting Started* documentation for folks wanting to get their feet wet in wiki.
<azonenberg> Setting up a unit test framework and figuring out how to integrate my current proof-of-concept test case into it is a relatively high priority todo if you want to keep playing build monkey
<azonenberg> re documentation i think focus should be on the manual
hlzr has quit [Quit: Connection closed for inactivity]
<azonenberg> If you want to work on that, by all means
<Kenley> I'm OK with build monkey, but I don't feel that I have enough background knowledge of C++/C test frameworks to make a data-driven decision on a unit testing framework.
<azonenberg> Once we have text written it will be fairly easy to copy paste that onto the wiki or a web page or something if we decide that is more accessible to new users
<azonenberg> Creation of the content is the higher priority than the formatting at this stag eIMO
<Kenley> I want to write the getting started content.
<azonenberg> Do you think the content in the pdf manual is insufficient? or what
<azonenberg> i thought it was pretty good, and the big thing we were lacking was half the features of the software were undocumented
<Kenley> But I probably want to get .deb packaging working as a forcing function to get the code running on my Linux box, not the Pi.
<azonenberg> #140, 141, and 142 are related to that
<azonenberg> (on scopehal-apps)
<azonenberg> CPack is probably the lowest effort way to get deb packages
<azonenberg> basically, once "make install" works, using CPack to generate .deb's is 5 minutes of work
<azonenberg> But we need to actually write the relevant stuff to install all of the build artifacts
<Kenley> I feel like a tutorial with screenshots will help. Use glscopeclient to do X.
<azonenberg> If you wanna do that, I can assign #142 to you?
<Kenley> Sure.
<azonenberg> right now it's assigned to bird but i dont think he's actively working on it
<_whitenotifier-f> [scopehal-apps] azonenberg assigned issue #142: Proper cmake install support - https://git.io/JJObA
<azonenberg> Added you
juli966 has quit [Quit: Nettalk6 - www.ntalk.de]
futarisIRCcloud has quit [Quit: Connection closed for inactivity]
<azonenberg> Also, tutorials actually sound like really good subject matter for the wiki
<azonenberg> Leaving the manual for "what does X do?" type stuff
<azonenberg> honestly i expect the bulk of meat in the manual to be explaining all of the filters and protocol decodes
<azonenberg> as well as the basics of how various UI elements work
<azonenberg> There are a couple of demos on my youtube channel (many of several-years-old versions of the software so things have changed in appearance) but they are focused more on showing off cool features
<azonenberg> and are less of a "how-to"
<_whitenotifier-f> [scopehal-apps] azonenberg assigned issue #141: Add cpack support - https://git.io/JJObN
<azonenberg> So in that case i guess your plan is going to be doing #141/142 first, followed by writing some tutorials?
<Kenley> Yep.
<azonenberg> Great :)
<Kenley> I don't believe cpack is the idiomatic way of Debian packaging, but I can do some more research.
<azonenberg> It is not. in fact, debian will not accept packages submitted for upstream that were built with any third party packaging tool whatsoever, as a matter of policy
<azonenberg> I suggested cpack because it will generate deb, rpm, and i think nullsoft? installers for windows with very little work
<azonenberg> it's a lot better than nothing
<azonenberg> we can then create distro specific packaging as time and demand dictates
<Kenley> I remember this from my Concerto days.
<azonenberg> On my end, my immediate focus at this point is going to be finishing a few more features like different trigger types on Tek MSO5/6 driver
<Kenley> We distributed .debs that did not fit.
<azonenberg> because i'm borrowing it over VPN from a generous donor and he can ask for it back at any time
<azonenberg> so i want to make good use of it
<Kenley> Makes sense.
<azonenberg> once i'm done with that, i think unit testing will be the next focus
<azonenberg> I'm very glad you and bird are doing what you're doing because build monkey and doc stuff is about my least favorite part of software engineering lol
<azonenberg> it needs to be done but i hate doing it so i keep putting it off to work on fun stuff like 10GbE protocol decoding etc :p
<Kenley> Builds and software quality are my strong points.
<azonenberg> Awesome
<azonenberg> One thing i would absolutely love for someone to do is write unit tests for as many filters as possible (filters being a sizeable fraction of the codebase and far easier to automatically test than hardware drivers or GUI code)
<azonenberg> is that something you'd be interested in doing once we have the test framework set up?
<azonenberg> they're mostly going to be fuzzer style, basically generate a random chunk of data that is mostly/entirely valid for that protocol, run the decoder, and make sure it doesn't segfault or generate incorrect output
<azonenberg> For lower level stuff like SPI and "rise time" this will be fairly easy, although for more complex stuff like Ethernet a test case will basically involve either implementing the entire protocol or simply replaying a canned waveform, neither of which is ideal
<Kenley> I can help with that.
<azonenberg> Excellent. IMO tests for each filter should be written in tandem with the documentation for it in the manual
<azonenberg> describe what the inputs and outputs are, how to configure it, then write a test case to ensure it really does that
<azonenberg> For starters the focus should be on the low hanging fruit, doing the easy protocols like UART and SPI and basic measurements like rise time, frequency, etc. There's a lot of them and the test cases are low effort to build
<azonenberg> It will help shake out problems in the general testing strategy and improve % coverage of both unit tests and documentation
<azonenberg> then worry about the more complex things like ethernet, usb, etc decoding later on
<azonenberg> also low level PHY type stuff is generally a dependency for higher level protocols, e.g. both 1000base-X, PCIe, and SATA all depend on 8b10b working correctly
<azonenberg> So the probability of a user hitting a bug in a protocol goes up as you move down the stack because more stuff depends on it
<azonenberg> anyway, that's blocked on me committing to a test framework. I'm tempted to go with CTest as i like the kitware stack and we're already using CMake but I haven't done the research yet
<azonenberg> Just making sure we're in agreement on the roadmap
<Kenley> Did you take OSSP at RPI?
<azonenberg> No
<azonenberg> But i did a lot of work with VTK and ITK on a URP in Prof. Roysam's lab in ECSE
<Kenley> I got my first exposure of CMake from that class.
<azonenberg> And i've been using CMake for my projects since like sophomore year when i migrated away from visual studio and installed ubuntu
<azonenberg> incidentally that was also my first exposure to filter graphs as a concept
<_whitenotifier-f> [scopehal-apps] azonenberg closed issue #239: Continuous integration setup - https://git.io/JTByv
<azonenberg> Yeah I think it's done
<azonenberg> we'll make new tickets for specific stuff like adding unit testing to the CI builds etc as needed
Kenley has quit [Read error: Connection reset by peer]
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±2] https://git.io/JT2VL
<_whitenotifier-f> [scopehal] azonenberg b9d5446 - TektronixOscilloscope: implemented pulse width trigger support
azonenberg_work has quit [Ping timeout: 265 seconds]
azonenberg_work has joined #scopehal
<_whitenotifier-f> [scopehal] azonenberg opened issue #315: Support for Tek MSO5/6 logic-qualified triggers - https://git.io/JT2Ku
<_whitenotifier-f> [scopehal] azonenberg labeled issue #315: Support for Tek MSO5/6 logic-qualified triggers - https://git.io/JT2Ku
<_whitenotifier-f> [scopehal] azonenberg pushed 2 commits to master [+0/-0/±6] https://git.io/JT2X6
<_whitenotifier-f> [scopehal] azonenberg 6054c75 - Added to_string_sci()
<_whitenotifier-f> [scopehal] azonenberg ab61546 - Dropout trigger support for Tek MSO5/6
<_whitenotifier-f> [scopehal] azonenberg labeled issue #259: Eye pattern: allow phase offset in ps from reference clock to eye midpoint to be specified - https://git.io/JUuFK
<_whitenotifier-f> [scopehal] azonenberg commented on issue #259: Eye pattern: allow phase offset in ps from reference clock to eye midpoint to be specified - https://git.io/JT21t
<_whitenotifier-f> [scopehal] azonenberg closed issue #259: Eye pattern: allow phase offset in ps from reference clock to eye midpoint to be specified - https://git.io/JUuFK
<_whitenotifier-f> [scopehal] azonenberg closed issue #279: Add optional mode to SCPITransport reads to terminate a read with either a semicolon, new line, or both - https://git.io/JUKxi
<_whitenotifier-f> [scopehal] azonenberg commented on issue #279: Add optional mode to SCPITransport reads to terminate a read with either a semicolon, new line, or both - https://git.io/JT21W
<_whitenotifier-f> [scopehal] azonenberg opened issue #316: Support for Tek MSO5/6 width-qualified runt trigger - https://git.io/JT2Me
<_whitenotifier-f> [scopehal] azonenberg labeled issue #316: Support for Tek MSO5/6 width-qualified runt trigger - https://git.io/JT2Me
<_whitenotifier-f> [scopehal] azonenberg edited issue #316: Support for Tek MSO5/6 width-qualified runt trigger - https://git.io/JT2Me
<_whitenotifier-f> [scopehal-apps] azonenberg opened issue #247: CI runs should log success/failure status to IRC - https://git.io/JT2yv
<_whitenotifier-f> [scopehal-apps] azonenberg labeled issue #247: CI runs should log success/failure status to IRC - https://git.io/JT2yv
<_whitenotifier-f> [scopehal-apps] azonenberg opened issue #248: Develop regression test suite for each scope family/driver - https://git.io/JT2yZ
<_whitenotifier-f> [scopehal-apps] azonenberg labeled issue #248: Develop regression test suite for each scope family/driver - https://git.io/JT2yZ
<_whitenotifier-f> [scopehal] azonenberg pushed 1 commit to master [+0/-0/±6] https://git.io/JT2Q8
<_whitenotifier-f> [scopehal] azonenberg f3451ed - TektronixOscilloscope: implemented runt trigger. Fixes #316.
<_whitenotifier-f> [scopehal] azonenberg closed issue #316: Support for Tek MSO5/6 width-qualified runt trigger - https://git.io/JT2Me
promach3 has quit [Quit: killed]
_whitelogger has joined #scopehal
promach3 has joined #scopehal
jevinskie[m] has joined #scopehal
bluecmd[m] has joined #scopehal
<Bird|otherbox> azonenberg: btw, Catch2 supports integrating with CTest
<azonenberg> oh cool
<azonenberg> I'll look into that
<azonenberg> Bird|otherbox: so what might make sense, then
<azonenberg> is to use CTest directly for testing filters, as those are more complex setups that require more infrastructure than just calling a function or something
<azonenberg> and use catch2 for lower level tests like FindZeroCrossings()
<azonenberg> does that sound reasonable?
<azonenberg> then have a single ctest invocation in the CI build to run all of the test cases
<_whitenotifier-f> [scopehal-apps] azonenberg commented on issue #241: Unit testing - https://git.io/JTat4
lukego_ has joined #scopehal
florolf_ has joined #scopehal
pepijndevos_ has joined #scopehal
pepijndevos has quit [*.net *.split]
apo has quit [*.net *.split]
azonenberg has quit [*.net *.split]
lukego has quit [*.net *.split]
florolf has quit [*.net *.split]
lukego_ is now known as lukego
apo has joined #scopehal
juli966 has joined #scopehal
azonenberg has joined #scopehal
<azonenberg> Well that was annoying
Degi_ has joined #scopehal
Degi has quit [*.net *.split]
Bird|otherbox has quit [*.net *.split]
laintoo has quit [*.net *.split]
Degi_ is now known as Degi
Bird|otherbox has joined #scopehal
laintoo has joined #scopehal