From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andy Wingo Subject: Re: geiser-xref-callers does not seem to work Date: Mon, 29 Jan 2018 09:53:04 +0100 Message-ID: <87mv0x59n3.fsf@igalia.com> References: <87d13fjecw.fsf@gmail.com> <87shc8qt0p.fsf@igalia.com> <87372r2r0a.fsf@imladris> Mime-Version: 1.0 Content-Type: text/plain Return-path: In-Reply-To: <87372r2r0a.fsf@imladris> (Jose A. Ortega Ruiz's message of "Sat, 27 Jan 2018 17:41:41 +0100") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: geiser-users-bounces+glsg-geiser-users=m.gmane.org-qX2TKyscuCcdnm+yROfE0A@public.gmane.org Sender: "geiser-users" To: "Jose A. Ortega Ruiz" Cc: guix-devel-mXXj517/zsQ@public.gmane.org, geiser-users-qX2TKyscuCcdnm+yROfE0A@public.gmane.org List-Id: guix-devel.gnu.org Hi! Great to hear from you jao :) On Sat 27 Jan 2018 17:41, "Jose A. Ortega Ruiz" writes: > hmmm, i was investigating this. the cause geiser fails is that, in the > process of looking for other things, it's not able to find > `program-arities', exported by (system vm program). i am not sure why: Weird. Apologies for this, the function just doesn't exist. While program-arity exists and calls it, program-arity itself isn't called. I think this is detritus of refactoring :( The facility that Guile uses now for arities is find-program-arity from (system vm debug). It takes an address as an argument. Pass (program-code prog) if you know you have a program. The issue is that with Guile 2.2 there is code that doesn't necessarily have a corresponding program object. For example a function defined in a local context whose callers can be enumerated by the compiler can be called by label instead of by value, and in that case the "closure" of the function can be specialized to be e.g. a vector instead of a closure object. So while you always have an address, you don't always have a program object. Relatedly, you ask about program-module. This one is sadly no longer available. I suspect it is not coming back either :/ I think you have to fall back on mapping procedures to files, and files to modules. You might find a look to (system vm debug) to be useful for Geiser purposes. Note also that the interface to local variables and stack frames changed slightly too; see (system vm frame). Cheers, Andy