IRC channel logs
2025-11-04.log
back to list of logs
<dsmith>"A target shall be considered up-to-date if it exists and is newer than all of its dependencies, or if it has already been made up-to-date by the current invocation of make (regardless of the target's existence or age). A target may also be considered up-to-date if it exists, is the same age as one or more of its prerequisites, and is newer than the remaining prerequisites (if any)." <dsmith>Ah. for coreutils ls, the --full-time option lists out to nanoseconds <dsmith>On my system a stupid test tells me the granularity is about 20ns <dsmith>rm -f file*; for f in $(seq 0 9); do touch file$f; done; stat -c '%y %n' file* <old>why is guild now showing all available scripts? <old>I can see that `guild punify` exists, yet `guild list` does not show it <ArneBab>Do you know whether Wilko (theesm1) is still active (and reading IRC direct messages)? <bootchk>hello, new here, someone please respond since I am unsure my nick is registered. <bootchk>I am using g-golf to bind the Gimp library. It has an enum Gimp.PDBStatusType (in say Python notation.) (gi-import-by-name "Gimp" "PDBStatusType") seems to work. What Scheme notation refers to the enum members? <sneek>I think I remember theesm1 in #guix 9 months ago, saying: decfed: toys.whereis.social instead of toys.whereis.xn--q9jyb4c works asw since recently. <old>does someone know what module obarray are suppose to be <ekaitz>;;; - obarray: a hash table that maps symbols to variable objects. In this ;;; hash table, the definitions are found that are local to the module (that <ekaitz>;;; is, not imported from other modules). When looking up bindings in the <ekaitz>;;; module, this hash table is searched first. <ekaitz>old: that's part of the module system's comments <old>I'm trying to get the list of bindings used by imported module <ekaitz>the obarray is one of the fields of the module record <old>I can get the list of modules used by a module using `module-uses` to get a list of interface <old>but I can not know which binding are being used. It seems that this is done lazily <ekaitz>old: read at module/ice-9/boot-9.scm <ekaitz>under the title {Low Level Modules} <ekaitz>old: i cannot answer that far yet, the module system is basically everything and it's pretty complex <ekaitz>it's short, you can probably just read it from there <old>obarray seems to act like a cache <ekaitz>(i wrestled with it because I'm working on Mes, but I didn't really pay attention to the implementation) <mwette>obarray dates from early days in gcc; <old>my goal is to list the bindings used by imported module and filter syntax transformer <old>I don't know if I'm doing this at the right time tho <old>I use `load-compiled' to load a .go module, but I suspect that since expansion has been done at compile time, I won't have the syntax-transformer in the obarray when loading the module post-compilation <mwette>it was (is?) a used for collecting symbols from input. as characters were read they were added to the end, adding nul to the end. If the symbol was found in the obarray from previous read, the pointer was reset <old>what I am trying to achieve is to get a list of dependencies when compiling a module. That way, I can recompile that module whenever a dependency has changed. Kind of like `.d' file for C <old>This is for the blue build system <old>Now getting the list of dependency is easy, but I want only to recompile when syntax-trasnformer changed <old>that might be too much difficult to be done without the help of the toolchain <bootchk>I am interested in this thread too. Struggling to refer to names that should have been imported by (gi-import "Gimp"). Scheme doesn't have (oblist) ? <old>oh well I found a way <old>not nice but it works <old>Load the module (not compiled) and disable auto-compilation <old>this will drop you in that module. Then, reload the current module, this will force macro expansion again. Finally, call module-import-obarray <old>and used syntax-transformers ought to be presented <old>then module-import-interface to determine from which module the variable came from <old>now I just need to find a way to determine when a syntax-transformer has changed in a module eh <bootchk>(gi-import "Gimp") (describe <gimp-pdb-status-type>) says the enum class <gimp-pdb-status-type> was not imported but (describe (gi-import-by-name "Gimp" "gimp-pdb-status-type")) seems to work. Why would the former not export the foreign enum from the introspected library? <jab>dthompson: I've made a ox-commonmark.el file that works with haunt. <jab>It's pretty simple at the moment, but I'd love to get your feedback <dthompson>jab: I finally replied to your email from awhile ago this morning. very cool! <dthompson>are you looking any specific feedback? if it's working then that's great! <jab>I must have missed or not gotten the email yet. Well, I want others to know about it and be able to use it. I was wondering if you think it'll be a good idea to include it in $haunt-src/etc/ox-commonmark.el for a while, or should I try to upstream it into org-mode ? <jab>and it's working enough for my needs yeah. <binarydigitz01>Hey guys I wanted to discuss the packaging of guile libraries. If you use the GNU Auto tools template, you often a folder like $1/share/guile/site/3.0, with all compiled .go bytecode files. Is it important to ship with everything compiled to bytecode, and is this kind of folder pattern necessary? <sneek>Welcome back binarydigitz01, you have 1 message! <jab>I disable the table of contents at the moment, and I have to manually run a command from emacs. <dthompson>I don't plan to include any elisp in haunt itself <jab>alrighty then. I'll see about including it into org-mode. It might be cool for you (and me) to toot about it. Just so others can use it. :) <jab>at the moment, it does have some rough edges. <jab>mainly that you have to manually visit ox-commonmark.el, then M-x eval-buffer, then you can use it. I haven't quite figured out how to (require 'ox-commonmark.el). <dthompson>for that you have to make sure that it's on the emacs load path <dthompson>the path of least resistance to making this easily usable is to write a package for melpa <jab>that's a good idea too. I'll work on making a package in melpa. Once it's easy for others to use, I'll let you know. <rlb>dsmith: I also suppose touch -r makes it trivial to demonstrate the problem, if you already understand timestamp granularities. <daviid>bootchk: to your last quiz, this seems a bug in the typelib, unless pruposefully not uncluded ... but is in the typelib is imported when (gi-import "NameSpace") ... <daviid>to your first quiz, they are symbols, that you must use when calling a function or ethod that requires the arg, like in (gimp-foo-bar foo 'success) (a fictic gimp call, I do not know that namespace ... <daviid>caould you try to know which matrix room the gimp gi uses and ask there? <daviid>a few misspelling in the above, sorry ... but you get the idea I hope, ping me otherwise <rekado>mwette: thanks for fixing the bug in the ffi helper so quickly! I haven't been able to find the recent release tarballs on github.com, nor on Savannah (the signatures are there, but the tarballs are empty). <sneek>Welcome back rekado, you have 1 message! <mwette>rekado: oof. I had that process autocoded. I'll check on it. <daviid>bootchk: also, you probably meant toi write (gi-import-by-name "Gimp" "PDBStatusType"), (gi-import-by-name "Gimp" "gimp-pdb-status-type") would not work <bootchk>daviid: thanks, yes, I just discovered that the name is PDBStatusType. <bootchk>It seems that (gi-import-by-name "Gimp" "PDBStatusType") returns a <gi-enum>. Maybe it doesn't export or expose it. I suppose I can keep that class and query it. <daviid>bootchk: I just aske in the introspection mtarix room,lets see what they answer <daviid>meanwhile you can manually import this one ... and continue your dev ... <bootchk>I don't understand why (gi-import "Gimp") failed to import the name <gimp-pdb-status-type> (although I swear I saw it work at least once.) <daviid>bootchk: note that to retreive a boxed type, in your code for example, if needed, you call gi-cache-ref, like (gi-cache-ref 'boxed 'gimp-pdb-status-type) <bootchk>BTW, I am a GIMP developer, trying demonstrate a GIMP plugin using Guile and G-Golf. It more or less works, just working out some pesky stuff that can be worked around. <daviid>bootchk: oh, that's wonderfulll, tx <bootchk>Sure, I expect some of those. For instance, I found that Gimp uses a GObjectArray but G-Golf says "unimplemented." <daviid>let me try to find why the boxed type isn't cached <daviid>bootchk: ah, can you paste an example, I can implemented it and release ... <daviid>could use a frendly paste, debian, centos ... <daviid>not ths cloud pastebin, which tracke us like madness <bootchk>daviid: example of what exactly, the problem with importing Gimp.PDBStatusType? <daviid>no, of a call that reports unimplemented <bootchk>daviid: well that is not a short snippet, let me try and reduce it. <bootchk>Anyway, I hacked at util.scm and got by that temporarily (return something not really correct, but not throw exception.) <bootchk>Maybe its premature to fix that. I should post an issue and MR to GIMP, and get some reaction. <bootchk>The new Gimp architecture uses GI (like G-Golf), but Python plugins are most popular, and the other language bindings are problematic. <bootchk>I usually work on the old Gimp architecture for Scheme plugins, which embeds TinyScheme, very long in the tooth. <daviid>bootchk: I can fix g-golf ... I just need a snipset to reproduce the bug/problem/umimplemented feature <mwette>rekado: the savannah server is rejecting my ssh attempt <bootchk>daviid: sure, much thanks, I am impressed with G-Golf <bootchk> (define (gi-array->scm foreign compl) <bootchk> (error "Unimplemented array interface: " type)))))) <bootchk>This is the hack that works around. It will take me a while to post a reduced snippet test case. <daviid>bootchk: please use a pstebin, one of the one i pastedabove, tx <daviid>do not paste here more then one line at a time ... tx <mwette>rekado: found this: "As of 2025-01, SFTP is disabled on Savannah." <daviid>and please paste a code that calls the gimp function invloved, I'll fix the utility <mwette>rekado: fixed now; thanks for the heads-up <mwette>github releases are black-box automated it seems <bootchk>daviid: My apologies. It will be tomorrow before I can post a snippet that reproduces. Its a callback from Gimp into Scheme that might not simplify. <daviid>bootchk: no problem - a callback from gimp, what is the name of the gimp function? a link to its documentation migth help <daviid>bootchk: but take your timre, a snipset that let me reproduce would be ideal ... <daviid>bootchk: i'll ask in gi matrix room if someone has a similar example using another namespace ... who knows ... <daviid>bootchk: ok, i'll look asap but not exactly now ... will ping you if i need more ... tx <bootchk>daviid: Yes, later. It might be worse: this is interprocess, and the object might be proxy objects, now that I think about it, not even defined in the TypeLib, if that matters. <daviid>bootchk: those gobject instances are in scheme, right? <rekado>mwette: thanks for working on this. I cannot find the change to ffi-help-cd.scm in nyacc-2.02.5.tar.gz, though. <daviid>bootchk: for this to work, I need to get access to a list of g-golf proxi instance <daviid>(gim-foo arg' arg2 (list <inst-1> <ints-2 ...)) <daviid>that list would then be transformed into the expected gobject array <bootchk>davidd: my brain hurts. The proxy objects are created on the C side, and just passed. Opaque to Scheme? Scheme code in the plugin would index them out of the array and just pass them around. Maybe opaque in G-Golf also? I am not the best GIMP developer to talk about this. <mwette>rekado: sorry about that. Give me a minute to try again. <daviid>I could make it so one can pass either a list of proxi instances, or a list of pointers (to GObject instances) <daviid>but you'd need to get the list of pointers to C instances from scheme 'on your own' <mwette>rekado: try now: should appear on line 611 <mwette>cccccbbnvefdvjrguccelfculcvigueuhlkeilcgjceh <daviid>bootchk: wrt PDBStatusType, it is imported and available, here <daviid>but how do ge the list of pointers to C instance from scheme? <lechner>Hi, can Guile alias memory as a typed integer vector like (pointer->bytevector pointer length offset 'u32) but specifically using (endianness little) on all arches? <mwette>bytevector-ref takes an endianness argument <mwette>e.g. IIRC, (bytevector-u32-ref bv 32 (endianness little)) <lechner>mwette / thanks! doesn't that just extract one number, though? I think pointer->bytevector does something much cooler, i.e. see the "buckle seatbelts" remark in the manual <mwette>What are you doing with the bytevector? It seems you have little-endian memory which you might want to process on a big-endian processor. <lechner>mwette / i implemented the compression algorithm BLAKE3 in Guile. the spec is little endian on all arches