EOF Implementers Call #21
EOF Implementers Call · August 2023 · 15:53
EOF Implementers Call #21, recorded around August 2023. The EVM Object Format, or EOF, is a proposed overhaul of how contract code is packaged and validated in the EVM. These calls bring client teams, compiler authors and spec writers together on implementation, testing and specs.
Topics
From EOF Implementers Call, hosted by Ethereum Foundation.
Transcript
okay if recording started um Rhodesia could you repeat uh the things you said about uh epsilon's progress yeah so we so we merged the pr regarding the call of Call of stock validation that's the first thing and the second thing we are working on the on the support of the eof uh ER tests in ebm1 and uh I think we have a still con continuing discussion about uh disallowing collab to to non-returning function as far as I understand understood from the recent uh recent discussion inside our team we are leaning towards uh disallowing this um
this this kind of uh instruction to non-returning function okay um cool it says the Epsilon update um is non-returning the red f or or return as as far as as far as I understood this uh it's uh it's basically uh okay I'm not going to to to to say because I don't know so I don't want to I want to make uh make some misunderstanding so basically
basically you should uh we should discuss it with uh Andre or Pavel maybe you're applying so yeah if I had a guess it would be red f um I might be wrong but red f keeps call popsicles pops a message frame um all the other options return revert invalid instructions create um those now those dispense with the call frame red f doesn't pop a call frame red f pops a function frame and all those other ones revert return stop um pop a message screen and since eof is operating within a single message frame the only one that would make sense to me
would be red f yeah I mean it would be a little weird for to require some routines call but I mean it's actually kind of an interesting restriction right because like you may I don't know want to have some kind of thing where you return sorry y'all uh uh contract return from from a subroutine uh so or that I would consider non-recially this reverts that's everything that does nothing but revert would be a non-atturing so you wouldn't call one of those you would jump up into them
so you wouldn't call F um and outline the perverts you would jump off into an outline that reverts if it could retf then you would call F it basically it's a way to introduce dead code I think if you can call left into an non-reverting instruction yeah into an non-returning instruction yeah I mean you know yeah I get it it kind of seems like the the duties of call F and jump off are are getting pretty clearly delineated yeah jump F requires the call F requires
a return um jump def prohibits a return but jump f is very restrictive right you know it can either tail or curse or or return or or terminate right right Taylor Crystal terminate that it's a very concise way to phrase it yeah you can yeah okay um I didn't have the agendas I did it out of order are there any clients that have any clients updates um we got the update from Epsilon kind of it's also a spec update do we have never mind or Geth or um ethereum js on the call
doesn't look like it um Basu um I keep working on create three I keep getting distracted with other things uh status is just the right invalidate test cases haven't committed it yet to our um Mega eof Branch but there's a lot of um a lot of distractions trying to get Cancun out the door so that's the update from Basu so the next traditional agenda item is compiler updates do we have solidity here we got um Viper is there a solidity representative okay Charles do you want to go for Viper
yeah no Viper updates uh I was still talking with you know Pablo about the stock validation and it sounds like Andre is doing some work on that but uh I think at least me and Pablo are pretty pretty low in bandwidth right now so no no material updates testing updates I guess that's Hugo and Mario yep um I know first uh so yeah basically no not that many updates but we are working on a rebase which I will share on the on the chat
um this branch is basically the work that I did like a month ago but it's been rebased on top of Maine because there were so many new changes to the to the execution factors which is the python test uh repo and it's expenses currently working on personal tests and business to domain so we can have like a a solid base where we can start adding animal tests for the latest spec um Andrea mentioned that he wanted to start uh contributing uh at least that's what I understood but um he mentioned a couple of comments on our implementation of the grid free
um functions and methods that we have to dynamically generate code so um we're gonna first and then work on fix those uh those comments um but yeah mainly I just wanted to share this Branch this is where the eof work will land on on the next couple of weeks or end and months to come um yeah and also invite everyone if he wants to take a peek into the python python code and wants to contribute just please let me know I can help out in any way I can there's no way to pin just a branches
there there's no way sorry just looking at GitHub there's no way to like say follow the changes to this Branch you have to follow the changes to the entire repo oh I see okay I don't I don't think so I'm not sure I'll just follow the whole repo that's probably one I should pay attention to anyway okay okay sounds good that update cover anything Hugo might have to add or see if we have anything to add uh sorry my
can you hear me yes we can hear you yes yeah my audio was not working before so I didn't hear anything but um from my side um the um yeah there is this um request that it is changing the existing UF tests uh in order to change the for example the print uh Fork name uh to practice and also the the data ID from zero three to zero four this is already ready for review and also there is another another new PR which
this BR is changing all the existing tests in order to change the first section um output in order to to mark it as yeah this is this is some this is um almost ready there is only one one last change that was added to the spec which disallows um using call F for calling a non-returning function so this is still needs to be added to the to this um to these test changes but yeah they are
almost almost ready cool that's good getting tests that's really positive I guess uh we move on to the community updates um I don't know who maintainer.ethers but I know who per Pat and Zayn are um per Pat and Zane do you have any um are you both with the s store 2 project or are you on separate projects no we're from separate groups I I work at Cricket blocks um yeah when we kind of maintain a library that's like similar to Estes R2 but a separate version of it um yeah no
updates on our end just like to follow along on this call yeah just following along I worked for 101.org yeah just like in the same launching groups okay that's good to hear that you're you're following that's that's good signal so this will probably be a quick rating if um double click on like uh I just I think the last call that I was on um in terms of uh um the the conversation about exposing an OP code for uh cross contract UF storage reading
um I think where we left that was like splitting that off into its own EIP and is that still the latest kind of state of the world in terms of the consideration there or is there a pretty much better that I was gonna write EIP for that but we still haven't seen the uh we've seen the draft of the data copy Ops but I need to write a draft for that um so that is kind of a meta discussion let me write that as myself EXT ER copy empty so it is kind of um a strategy discussion were to say um coming up to what we get into Prague um is it too big to get the stuff into Prague and putting some of these in separate eips will make it easier to sever out pieces if the other core tabs
think it's too much for their clients or to bring them back in or if the testing load or the wrist or whatever um you know it takes to get it the elephant through the door into Prague um so I think that's why we're going there and um I I think the uh another couple of calls that would be on that um 1.1 list I guess is one of my emotionally be called although it doesn't exist would be the um call Fi and jump F5 functions if those put on there they're separable they want to add value they can be discussed on their own but it's not um essential for the first past although it would add value and make things better for the community and those because those are not um
I think we want to have one thing that just does the bare minimum that does all the breaking that needs to be broken and still has a complete functional system that may not be the most efficient on first pass but it is self-contained I think that is what we need to have is the smallest possible bundle and everything that comes off off of that can can be added um because I think that's always been the strategy with eof back when they were discussing it and and um Bogota and every other place that they've talked about in Amsterdam the more you split out of it and make it you know it's the the hole is more valuable than some of the parts but at some point you need you can't have it's too big to shift through the door so it's it's kind of a tricky process
yeah that makes sense um okay yeah I think we'll we'll continue to follow along there I think like the pragmatically what it means for folks like us is you know that's not included in the the first hard work supporting UF I think um going the approach that's been talked about on this call of like uh kind of using a pattern of uh storage contracts exposing a method that allows you to read their contents is probably yeah the the other path there uh which I think is definitely workable it's just a little bit Yeah less efficient more messy um but not a not a not a like hard break or anything like that cool
any other community questions comments feedback couple of things I think that are worth mentioning um Epsilon is putting together the evm summit that's going to be I think on Tuesday the week of devconnect out in Turkey um if you go to the evmsummit.org website I think it's the dot org um follow my Twitter at evm um they're asking for attendee lists they're asking for speakers um you know if you're interested that's something to do that week it's tagged as advanced so if you're the type
of person that finds this call interesting it's probably the right place for you also I'm going to be giving a talk at East Chicago here in about a month on the ethereum object format um I should get my slides together in a couple weeks and filming those comments to add to that try to do my best to represent the project well and what we're trying to accomplish there um ipsilant's done some amazing work on it I want to make sure that they get people in North America where the stuff that they've been doing um any other conferences that people are aware of UF stuff happening under evm that they're participating in they want to promote all right any other discussions before
we give everyone 35 minutes back all right if not I guess we can all check our emails and our Discord threads thank you