--- Day changed Thu Oct 01 2020 00:45 -!- jonatack [~jon@37.164.132.126] has joined ##miniscript 01:07 -!- Aleru [sid403553@gateway/web/irccloud.com/x-yujxdzfveoxjwazt] has joined ##miniscript 01:07 -!- felixweis [sid154231@gateway/web/irccloud.com/x-krefugjevbfmhthz] has joined ##miniscript 01:52 -!- Netsplit *.net <-> *.split quits: Aleru, felixweis 02:10 -!- Netsplit over, joins: Aleru, felixweis 03:04 -!- jb55 [~jb55@gateway/tor-sasl/jb55] has quit [Ping timeout: 240 seconds] 03:05 -!- jb55 [~jb55@gateway/tor-sasl/jb55] has joined ##miniscript 03:15 -!- jonatack [~jon@37.164.132.126] has quit [Ping timeout: 260 seconds] 05:21 -!- jonatack [~jon@2a01:e0a:53c:a200:bb54:3be5:c3d0:9ce5] has joined ##miniscript 05:33 < andytoshi> jeremyrubin: i thought we had such a thing 05:34 < andytoshi> https://docs.rs/miniscript/1.0.0/miniscript/policy/semantic/enum.Policy.html unsatisfiable and trivial 05:35 < andytoshi> oh they don't exist on the compiler policy type 05:36 < andytoshi> yeah i think they probably should, it does make composeability hard for those if there is no initial/terminal object 08:46 < jeremyrubin> andytoshi: https://github.com/rust-bitcoin/rust-miniscript/pull/138 08:58 < andytoshi> thanks 08:58 < andytoshi> fyi in the past i have disagreed with sipa about this, and it means that the rust-miniscript concrete policy language differs from sipa's 09:06 -!- jonatack [~jon@2a01:e0a:53c:a200:bb54:3be5:c3d0:9ce5] has quit [Quit: jonatack] 09:08 < jeremyrubin> interesting 09:09 < jeremyrubin> btw I'm not quite sure how to debug the failing fuzzer 09:12 < andytoshi> yeah for some reason we removed the fuzz unit tests 09:13 < andytoshi> there are insrtuctions in fuzz/README 09:13 < andytoshi> lol hmm apparently i acked this 09:14 < andytoshi> https://github.com/rust-bitcoin/rust-miniscript/pull/95/commits/351576ae2a30bd2ef62a9c6f63c05d133d300805 09:14 < andytoshi> we should probably just revert that commit, it makes the fuzz tests so much more annoying to use 09:15 -!- jonatack [~jon@2a01:e0a:53c:a200:bb54:3be5:c3d0:9ce5] has joined ##miniscript 09:19 < sanket1729> jeremyrubin: Added a comment for fixing fuzz issue 09:27 -!- roconnor [~roconnor@host-104-157-196-197.dyn.295.ca] has quit [Ping timeout: 260 seconds] 09:35 < jeremyrubin> sanket1729: to be clear some other patch should change that right 09:35 < jeremyrubin> it's not b/c something I introduced 09:36 < sanket1729> Earlier it was because compiler failed on compiling TRIVIAL policy 09:36 < sanket1729> Because it marked trivial as unreachable node 09:37 < jeremyrubin> Ah i see. 09:37 < sipa> i thought we already had true/false, but apparently only in miniscript itself, not in the policy? 09:37 < sanket1729> We had that in semantic policy, but not in concrete one 09:38 < sanket1729> I am happy that the fuzzer works :P 09:40 < jeremyrubin> sanket1729: is there any other bad ramification from adding the from_true? 09:41 < sipa> andytoshi: i'm not too worried about policy languages differences... the whole point of miniscript is that it shouldn't matter what compiler (or source language) people use 09:41 < sipa> though it's useful for cross testing 09:41 < jeremyrubin> sipa: is there a reason you think Policy shouldn't have trivial/unsat? 09:41 < jeremyrubin> curious for the reasoning 09:42 < sipa> no, i don't see why not 09:42 < sipa> i assumed we already had them 09:43 < sipa> the internal optimizer even has it, apparently; there is just no syntax mapping to it 09:43 < sanket1729> jeremyrubin: I think we had initially as a form of sanity check. 09:44 < sanket1729> I cannot think anything bad happening because we compiled a true policy 09:49 < andytoshi> yeha i thnk it was just a question of usefulness 09:50 < andytoshi> jeremyrubin: can you change the PR though to use lowercase names? 09:50 < jeremyrubin> andytoshi: i did it to be the same as in semantic policy 09:50 < andytoshi> o.o 09:51 < andytoshi> ok never mind, it's fine then 09:51 < andytoshi> but i wonder why on earth i did that 09:51 < jeremyrubin> :shrug: 09:52 < jeremyrubin> could clean up both as follow up work, but it would be a breaking change :( 09:52 < jeremyrubin> I guess you could add another alias? 09:55 < andytoshi> i think we should just do a breaking change :P 09:55 < andytoshi> we're going to release a new version anyway in the next day or two 10:02 < andytoshi> jeremyrubin: needs rebase 10:25 < andytoshi> darosior: on #131 can you make sure that git rebase -x 'cargo test --features "compiler"' passes? 10:25 < andytoshi> i.e. rebase to fix the compilation errors 10:26 < sipa> woah 10:26 < sipa> TIL rebase -x 10:26 < andytoshi> haha wow, your life will be changed 10:33 < darosior> andytoshi: rebased 10:33 < andytoshi> thanks 10:35 < darosior> Hmm do you want bisectability for the tests on each commit ? 10:35 < andytoshi> yeah 10:35 < darosior> Somehow i messed up one of the rebase of this PR last week, i can fix it now.. 10:36 < andytoshi> though i don't usually check with feature flags on ... i happened to this time because i noticed some unit tests didn't make sense visually and then noticed they were feature-gated on the compiler 10:41 < darosior> andytoshi: Yeah the derive() tests ended up in the first commit. Fixed now :) 10:44 < andytoshi> thanks :) yeah, that's what caught my eye 10:44 < andytoshi> i was trying to figure out where the old implementation of `derive` had gone, since i know it was removed and it didn't appear in any of the diffs 10:44 < andytoshi> and yet it was called from a test.. 10:46 < andytoshi> ok gimme a couple minutes to get my local rebase -x finished 10:46 < andytoshi> and i'll merge 10:47 < sanket1729> yep. -x is quite handy. I wonder if we can add that to the CI. 10:49 < aj> MAKEFLAGS=-j12 git rebase -x 'make && make check' origin/master # might be a fun new alias for me 10:49 < sipa> andytoshi: y u no 'make -j12 check' 10:50 < sipa> eh 10:50 < sipa> aj: ^ 10:50 < aj> ehj 10:50 < aj> i usually do make -j12 && make -j5 check 10:50 < andytoshi> lol, well, the reason i don't is because some projects (including 2015-era bitcoin, iirc) do bad things with -j 10:50 < sipa> andytoshi: in bitcoin core you need 1G ram per -j 10:51 < aj> but i like to see the build succeed before any tests start, but sure 10:51 < sipa> approximately 10:51 < sipa> i think it only starts checks once the build succeeds anyway 10:51 < sipa> if it doesn't, i've never noticed 10:51 < andytoshi> the problems i remember involved building thigs in the wrong order, not ram limitations- 10:51 < sipa> ah 10:51 < aj> never tried. it doesn't build the benchmarks until check though :( 10:52 < sipa> andytoshi: that may have been the case long ago 10:52 < andytoshi> though i assume this hasn't been a problem in years, -j is so popular 10:52 < andytoshi> yeah 10:52 < andytoshi> sanket1729: ok lets get 119 in and then we can do a release 10:52 < sipa> yeah, i can do make -j30 fine now, on systems with enough ram 10:53 < andytoshi> or do you think we should do #116? it's marked WIP still and i don't recall where we landed on the design discussion 10:53 < andytoshi> sanket1729: can you rebase #119 10:53 < sanket1729> rebasing 119 10:54 < andytoshi> dope 11:01 -!- Netsplit *.net <-> *.split quits: Aleru, felixweis 11:17 < sanket1729> andytoshi: Rebased and pushed. Awaiting CI 11:17 < sanket1729> can you look at discussion here? https://github.com/rust-bitcoin/rust-miniscript/pull/119#discussion_r487689431 11:24 < andytoshi> sanket1729: i'm confused, how could a general purpose `finalize` method work? 11:24 < andytoshi> in rust-bitcoin 11:25 < sanket1729> no, rust-bitcoin does not a generic finalizer 11:25 < andytoshi> you say " I think there definitely should be a finalize method in rust-bitcoin that works for all scripts. " 11:25 < sanket1729> It only has method to set final_witness and final_scriptsif 11:25 < andytoshi> ah 11:25 < sanket1729> I mean, scripts that not miniscripts 11:26 < sanket1729> and rust-miniscript has a "smart" finalizer that works for subset(miniscript) which outputs final_scriptsig and final_witness 11:27 < andytoshi> i'm a bit confused as to what the point of this API is in rust-bitcoin ... you have a mehtod which takes a witness/scriptsig and just puts those in the appropriate places in the hsahmap 11:27 < andytoshi> why can't callers (and rust-miniscript) directly put the fields in the hashmap 11:28 < sanket1729> Conceptually finalizing is exactly putting those in places 11:28 < sanket1729> not figuring out what to put 11:29 < sanket1729> I guess what I mean is the role of finalizer belongs to rust-bitcoin? 11:29 < sipa> finalizer is something that's supposed to understand the scriptPubKey being signed for (or otherwise determine if enough information is provided to construct a witness) 11:30 < sipa> it's separate from extractor, as the extractor can be dumb 11:31 < sanket1729> What about things that are not miniscript? There cannot be a finalizer for it? 11:31 < sipa> you need to use a finalizer that understands what the scripts do 11:32 < sipa> if there are miniscript constructions being signed, then that means you need a miniscript-capable finzlier 11:33 < sipa> you'll have at least one party present that does in this case, as the updater and/or signer need to understand it too 11:34 < sipa> but you could have a single transaction that consists of say miniscript inputs, and CrazyWallet inputs (which is something miniscript like, but not compatible with it, and no software exists that supports both miniscript and CrazyWallet) 11:35 < sipa> in that case you'll need to finalize with a miniscript finalizer and a CrazyWallet finalizer, combine, and extract 11:36 < sanket1729> makes sense 11:40 < sanket1729> andytoshi: agreed. Let's the API as it is then finalize(&mut Psbt) -> Result<(), Error> 11:40 < sanket1729> Btw, CI is psasing on #119 11:47 -!- Aleru [sid403553@gateway/web/irccloud.com/x-yujxdzfveoxjwazt] has joined ##miniscript 11:47 -!- felixweis [sid154231@gateway/web/irccloud.com/x-krefugjevbfmhthz] has joined ##miniscript 12:02 < andytoshi> 18:31 < sanket1729> What about things that are not miniscript? There cannot be a finalizer for it? 12:03 < andytoshi> yes :) this was one of the original motivations for miniscript 12:03 < andytoshi> arguably -the- original motivation 12:05 < andytoshi> ok i'll do a(nother) full review of 119 now 12:05 < andytoshi> and hopefully we can get it in :) 12:05 < andytoshi> and then do a new release 12:05 < sanket1729> awesome 12:07 < andytoshi> and then we can bump msrv to 1.29, update rust-bitcoin dep, and clean up some rust 1.22-isms 12:19 < andytoshi> o.o what is `run-parts` 12:19 < andytoshi> is that a standard utility? 12:20 < sanket1729> yeah 12:20 < sanket1729> It runs all scripts in a directory 12:20 < andytoshi> nice 12:21 < andytoshi> this `interpreter_check` method is pretty cool :P 12:24 < sanket1729> :) 12:37 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has quit [Ping timeout: 240 seconds] 12:38 < andytoshi> sanket1729: ok, review done 12:38 < sanket1729> awesome. addressing it 12:38 < andytoshi> awesome 12:39 -!- harrigan [~harrigan@ptr-93-89-242-235.ip.airwire.ie] has joined ##miniscript 13:16 < sanket1729> fixed 119 13:21 < andytoshi> ok just running the rebase check agian 13:21 < andytoshi> sanket1729: btw should we merge jeremyrubin's pr 13:22 < andytoshi> which uses btreemap in the campiler 13:22 < sanket1729> I am not against it. 13:22 < sanket1729> I think that maybe helpful in testing. 13:22 < sanket1729> based on the previous discussion, I think we should not make effort to *gurantee* determinism in rust-miniscript compiler project. 13:23 < sanket1729> https://github.com/rust-bitcoin/rust-miniscript/pull/109#issuecomment-702375954 13:23 < andytoshi> ok i'll merge it then 13:24 < sanket1729> I think shesek was interested in a simple deterministic compiler rather a optimal one. 13:26 < sanket1729> There is value some value in having `compile(compose(p1,p2)) = compose(compile(p1),compile(p2))` that we do not currently have 13:26 < andytoshi> lol now travis is taking forewer on 109 13:27 < sipa> sanket1729: i don't think that can work in general 13:27 < andytoshi> yeah i agree if the compiler were functorial in that sense it'd be great 13:27 < andytoshi> heh it may be impossible 13:27 < sanket1729> we don't have travis? 13:27 < andytoshi> oh lol 13:27 < andytoshi> github ci then 13:28 < sanket1729> I think it's probably because it was opened before we swtich CI 13:29 < andytoshi> no, it was rebased earlier today 13:29 < sipa> or at least not if you want an optimal solution, for any reasonable definition of optimal 13:29 < sipa> if you want composability, use miniscript, not compilation 13:30 < sanket1729> andytoshi: It was rebased today 13:30 < andytoshi> yes it will certianly be impossible if you want to optimize 13:30 < sanket1729> that was another PR by jeremyrubin about True/False policy 13:30 < andytoshi> sanket1729: oh lol 13:30 < andytoshi> jeremyrubin: can you rebase #109 13:34 < sanket1729> I can cherry-pick that if we want to work on release commits now 13:34 < andytoshi> yeah actually, that'd be great 13:34 < andytoshi> can you do a release PR? i am on a call right now 13:34 < andytoshi> i guess we just need a changelog and to cherry-pick 109 13:34 < sanket1729> sure 13:34 < andytoshi> awesome thanks :) 13:35 < sanket1729> andytoshi: Should we also update to 0.25? 13:35 < sanket1729> rust-bitcoin 13:35 < andytoshi> sanket1729: not yet 13:35 < andytoshi> we need to do a release with MSRV at 1.22 13:35 < andytoshi> then a followup one that bumps MSRV to 1.29 and bitcoin to 0.25 13:35 < sanket1729> cool 13:36 < sanket1729> andytoshi: What was that graph git log command that you shared last time :P ? 13:37 < andytoshi> git log HEAD --not --oneline --graph 13:42 < andytoshi> also if you do --min-parents=2 13:42 < andytoshi> you'll get only merge commits so you can see the PRs 13:42 < sipa> --merges is the same as --min-parents=2 13:42 < andytoshi> oh nice 13:43 < sipa> confusingly --no-merges is the same as --max-parents=1 13:43 < sanket1729> andytoshi: I think we should also update the psbt interface for satisfier 13:44 < sanket1729> Change it from psbt::Input to new struct (psbt, index) 13:44 < andytoshi> moreso than we did in the PRs we merged? 13:44 < andytoshi> oh right .. i forgot about that 13:44 < sanket1729> It is indeed as of now 13:44 < andytoshi> we currently just don't support sequence numbers? 13:44 < sanket1729> I thought I would do that along with hash preimages 13:44 < andytoshi> ah i see 13:45 < sanket1729> I will add that too. 13:45 < andytoshi> i guess we can't since we won't have hash preimagise til bitcoin 0.25? 13:45 < sanket1729> It's not merged yet :) 13:45 < sanket1729> after 0.25.1? 13:45 < andytoshi> heh yeah 14:02 < sanket1729> andytoshi: #141 and #142 are up 14:02 < sanket1729> working on release PR now. 14:06 < andytoshi> dope thanks 14:26 < sanket1729> up. 15:03 < andytoshi> sanket1729: need to update the psbt pr 15:03 < andytoshi> with height/time checks 15:03 < sanket1729> ah 15:03 < sanket1729> oops 15:05 < andytoshi> also lol when did we do 1.0? 15:05 < andytoshi> seems premature given that we know we're gonna break shit when taproot comes out 15:12 < sanket1729> We did it around July. I guess we were feeling confident about the stability. 15:13 < sanket1729> pushed a new fix. Using Older/After structs from satisfy.rs 15:14 < andytoshi> nice 15:17 < andytoshi> ok act 142 .. waiting on ci 15:26 < andytoshi> published 2.0 :) 15:26 < sanket1729> awesome 15:26 < sanket1729> I just found a typo in changelog :| 15:26 < andytoshi> i'm tempted to pull a rust-ism and bump the MSRV in 2.1.. 15:26 < andytoshi> oh lol "miscellaneous" 15:27 < sanket1729> you found another one :P 15:27 < andytoshi> hah what was the first one? 15:31 < andytoshi> lol i was all excited to use https://github.com/rust-bitcoin/rust-bitcoin/pull/387 but actually we haven't released it yet.. 15:31 < andytoshi> i need to do a new rust-bitcoin (minor) release befoer we can use those functions 15:33 < sanket1729> pushed a pr 15:37 < sanket1729> I don't see why not do 3.0.0? 15:38 < sanket1729> Let's change the rust-ism 16:09 < jeremyrubin> hey sorry was AFK 16:11 < jeremyrubin> thanks for the rebase sanket1729! 16:50 < andytoshi> sanket1729: because it looks bad to have enormous version numbers and to be doing several releases in a year 16:51 < andytoshi> for supposedly 1.0 software 16:55 -!- Netsplit *.net <-> *.split quits: Aleru, felixweis 17:05 -!- Netsplit over, joins: Aleru, felixweis 19:23 -!- jb55 [~jb55@gateway/tor-sasl/jb55] has quit [Remote host closed the connection] 19:24 -!- jb55 [~jb55@gateway/tor-sasl/jb55] has joined ##miniscript 19:33 -!- shesek [~shesek@164.90.217.137] has joined ##miniscript 19:33 -!- shesek [~shesek@164.90.217.137] has quit [Changing host] 19:33 -!- shesek [~shesek@unaffiliated/shesek] has joined ##miniscript 20:21 -!- Netsplit *.net <-> *.split quits: Aleru, felixweis 20:32 < sanket1729> andytoshi: heh, sure we can keep it at 2.1 . 20:49 -!- Aleru [sid403553@gateway/web/irccloud.com/x-yujxdzfveoxjwazt] has joined ##miniscript 20:49 -!- felixweis [sid154231@gateway/web/irccloud.com/x-krefugjevbfmhthz] has joined ##miniscript 21:23 -!- hugohn [sid304114@gateway/web/irccloud.com/x-wnvicsfksfayqswb] has quit [Ping timeout: 256 seconds] 21:24 -!- hugohn [sid304114@gateway/web/irccloud.com/x-wigsyrnczlzuvegj] has joined ##miniscript 21:29 -!- ghost43 [~daer@gateway/tor-sasl/daer] has quit [Remote host closed the connection] 21:29 -!- ghost43 [~daer@gateway/tor-sasl/daer] has joined ##miniscript 22:00 -!- ghost43 [~daer@gateway/tor-sasl/daer] has quit [Ping timeout: 240 seconds] 22:01 -!- ghost43 [~daer@gateway/tor-sasl/daer] has joined ##miniscript