IRC channel logs

2025-10-31.log

back to list of logs

<ekaitz>hi
<lloda>euouae: most bindings are just reexports, but those are incompatible. boot-9's map requires all arguments to be the same length, as do r5rs and r6rs, but srfi-1 and r7rs don't
<dthompson>kestrelwx: that file permission error looks like something you would see on hoot 0.6 but was fixed for 0.7. I also use guix and wrote the bug fix for this.
<dthompson>one possible explanation is that if you were using 0.6 for a previous --bundle usage and then switched to 0.7 you would still see this file permission issue. try deleting the bundled wasm/js files and then doing a --bundle twice.
<kestrelwx>Oh, there's no `export` macro either?
<dthompson>what are you referring to?
<dthompson>'export' is part of r6rs/r7rs library syntax
<characteristic>kestrelwx: (define thing 42) (export thing) is a Guile extension if you are talking about that
<kestrelwx>Yes, that.
<dthompson>that doesn't work in hoot because it's not really declarative
<dthompson>exports must be specified in the module definition
<kestrelwx>I forgot that I need to export everything, so I will probably write everything to a temp file first and then copy it after the header.
<dthompson>(define-module (foo) #:export (bar))
<kestrelwx>dthompson: I don't see the bundle error anymore with the `.js` and `.wasm` artifacts deleted.
<kestrelwx>Thanks!
<dthompson>yay!
<tohoyn>sneek: botsnack
<sneek>:)
<euouae>Hello
<euouae>how can I use syntax-rules ... feature in syntax-case?
<euouae>I've tried to replace (foo x x* ...) with (foo x . rest) and (bar x x* ...) with (bar x ,@x*), does that look right?
<euouae>foo being the match and bar being the application later
<old>euouae: What do you mean syntax-rules features?
<old>syntax-rules is implemented with syntax-case, so that would be the other way around no?
<euouae>The ellipsis, is it supported in syntax-case?
<dthompson>(syntax-case stx () ((foo ...) #'(list foo ...)))
<dthompson>works like in syntax-rules
<euouae>Got it, thank you. Must be something else I'm getting wrong then.
<euouae>old: Well, not necessarily, since syntax-rules is a specialization it can support "more" DSL features, but in this case it's not true
<old>Hmm I'm not sure what syntax-rules can support more. If you have an example I'll be interested
<old>I often just use syntax-cases directly
<euouae>I'm not saying it does, I'm saying it is conceivable it could
<euouae>I theorized perhaps that's why I'm getting an error, I was wrong
<euouae>ah sigh, I had my definitions outside the R6RS library form
<euouae>it's so awkward that library thing. R7RS is much nicer
<euouae>ah I figured it out.
<euouae>The ... feature is not in (rnrs base (6))
<euouae>e.g. <https://termbin.com/q66k> will error but if you replace (rnrs base (6)) with (rnrs (6)) it works
<euouae>However define-syntax *is* available in base. I'm trying to figure out if that's a guile issue or if R6RS really specifies it as such
<euouae>Okay, apparently I should've used (rnrs syntax-case (6)).
<hwpplayer1>rlb: hello I learned that you are a packager emacs for Debian
<hwpplayer1>When will Emacs 30.2 will be ready for Debian 13
<kestrelwx>I'm not quite sure, how would I convert a list into a JS array?
<rlb>hwpplayer1: not sure; don't know if spwhitton's started on it, but I haven't yet --- it's on the "middle burner". I might start on it in a week or two, and then it usually takes a day or so to sort out "depending".
<rlb>(might sooner, too, but we'll seen)
<hwpplayer1>Thanks for your contribution rlb
<hwpplayer1>I see
<hwpplayer1>My name is Mert Gör
<rlb>There's also #debian-emacs on oftc.
<hwpplayer1>Okay I will keep it in my mind
<rlb>(...though that's more often add-on package discussions than emacs proper -- the people handling all that packaging are impressive)
<rlb>kestrelwx: don't know if it'd help, but there some guile/json packages iirc.
<hwpplayer1>Do you write code or only packaging rlb ?
<rlb>both -- though more often scheme/clojure/python/c/... than elisp.
<hwpplayer1>Thanks
<hwpplayer1>Still learning for a real world software
<rlb>"there are some guile/json packages"
<kestrelwx>Sorry, this seems to be about converting opaque? wasm objects into JS stuf.
<rlb>Oh, if you're talking about *real* js arrays i.e. for interop with guile in the browser, then no idea.
<rlb>(I'd been thinking "serialization".)
<kestrelwx>Oh, there's an example on dthompson's January blogpost.
<dthompson>kestrelwx: you can car/cdr on the js side using the wrapper objects that reflect.js creates
<kestrelwx>Oh, that should be sort of fast?
<dthompson>it's not going to be particularly fast but if you need to do the conversion that's an option
<dthompson>usually it's more convenient to do the conversion the other way around from scheme
<dthompson>but either way you have to traverse a foreign structure
<kestrelwx>Yeah, but this is streaming data to WebGL, same as you had to.
<dthompson>you wouldn't be using lists or arrays for that
<kestrelwx>What should I have for buffer data?
<kestrelwx>I mean ctx.bufferData(...).
<dthompson>the docs say that the src needs to be a typed array or data view https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/bufferData#srcdata
<kestrelwx>Yeah, I'm trying to build a Float32Array and Int32Array.
<dthompson>here's some old code I wrote for a webgl triangle demo https://gist.github.com/davexunit/371f9336b5b690874f68fd22573c4198
<dthompson>kestrelwx: okay earlier you said "array" which made me think you were doing something with a regular js array
<dthompson>you want to use bytevectors on the scheme side and pack those with your vertex data
<dthompson>and then convert those to js uint8 arrays
<dthompson>and pass them to webgl
<dthompson>there's currently no way in wasm to avoid the copy. that's going to be the biggest performance killer for webgl apps right now.
<kestrelwx>Well, I cheated and hardcoded my indices, and I got a white square instead of a rainbow text I was hoping for.
<kestrelwx>But I'm trying to render text in an offscreen 2D canvas, so that I get 'crisp' text in a WebGL context, was hoping to finish a showcase today.
<kestrelwx>No matter, thanks, I'll get back to it tomorrow. Good night!
<dthompson>good luck!
<dsmith>sneek, seen pentium451
<sneek>Nope.