<daviid>guile-guest7: iirc guile 1 does not parse the string, so you should be able to write it 'in clear' in the string, try copy paste ... <guile-guest7>nope, texmacs user ... I have a scheme function in a plugin wich must "send" unicode character to texmacs document ... not working so far <daviid>guile-guest7: and if you send it, even if it displays badly in a guile 1 repl, how does texmac sees it? <daviid>try both the #\\x and the 'graphics', not processing the string in guile 1, just 'pass it' ... <daviid>guile-guest7: I'm sorry, it worked for me (like 10y ago) between guile-gnome gtk widget (which expect utf8) and guile 1, but I was using I can't think of any valid approach then, of course it works fine using guile 2.2 (it won't using 2.0 either by the way) so the bet is to convince texmacs maintainers to move on ... <daviid>oh, I mixed 2 sentences up there :), but the thing is it won't work I guess, sorry, texmac maintainers should move on and use guile-2.2 <daviid>guile-guest7: it's ok, maybe you can try guile 2.2 (not to interact with texmacs), here is what you get :) <galex-713>Do someone know if there is some good introduction to programming that use scheme&guile? ***galex-713_ is now known as galex-713
<davexunit>dustyweb: you wouldn't happen to know anything about the applicable struct stuff in the goops module, would you? <davexunit>it's not documented... but it sounds oh so useful <dustyweb>davexunit: applicable struct? oh, hm I didn't think I knew that was a thing :) <davexunit>I'm taking a stab at a game idea and using goops to model the models <galex-713_>Do someone know if there is some good introduction to programming that use scheme&guile? <daviid>galex-713_: pick any scheme book of your choice, there are quite a lot out there, then experimentimplement the exercises using guile <daviid>galex-713_: in // to reading a scheme book dedicated to teaching scheme, read chapter 1, 2, 3 nd 4 of the guile manual <daviid>* teaching how to program inscheme ... <daviid>it is somehow unfortunate that none of us did pick up and made guile-emacs 'happen', then these threads about 'it's a dead technology...' gives a bad impresion to newbies and future generation of schemers guilers ... <daviid>the worst of this is that, imo, some of the best hackers in the entire world are amng ud, yet with have all so lilmited resources ... that it all appears the bet hackersare pythonists .. or javsist ... <daviid>hum, my dactilo (lack of) skills aren't so good today .. tipo after tipo, my msg becomes funny (at most...) :) <wingo>dustyweb: see the docs recently pushed to master <wingo>basically, you can define redefinable goops classes -- but only classes that you intend to be redefinable are in fact redefinable <wingo>could be we have the wrong default and should make "define-class" default to redefinable classes, dunno <civodul>(read-disable 'positions) saves ~15% on the build time of gnu/packages/a*.scm <civodul>i suspect we're not done with the finalizer issues <wingo>civodul: i wouldn't necessarily conclude that it's the fault of finalizers; there is one finalizer to deal with the weak source map table, yes, but i suspect the overhead is also related to memory (source info is persistent through the compiler phases, not accessed weakly) and possibly also related to emitting more debugging information <civodul>wingo: also, what are your thoughts about the algorithmic complexity of intmap/intset lookup? <wingo>civodul: i am not sure how to answer. i think there is a gc-related problem -- i mean, half the time in gc! and of course it's in those routines that we have allocation, so that's where gc time would show up. i don't know though. <wingo>i want to run those tests on master too. i wonder if there is a problem given the two-word displacement of structs on 2.2. probably not but who knows <civodul>it's half the time in GC, but the heap is so big anyway <civodul>this is closely related: we retain a lot, so we spend more CPU time on GC <civodul>and in turn that makes it harder to interpret the profile <civodul>also, GC_DUMP_REGULARLY=1 shows we occasionally have large regions of the heap that are black-listed <dustyweb>wingo: wow I didn't realize that @efraim@tooot.im @gargron@mastodon.social > Back to the analogy of 'hey neighbor, can I store my stuff in your garage for free indefinately?' <dustyweb>I didn't realize that go_to_hell was a procedure in goops.c, funny :P <dustyweb>I'm also unsure if it's the right default, maybe for goops the opposite structure should be used (redefinable by default) but honestly I think it's not a huge deal <davexunit>wait classes can't be redefined by default now? <dustyweb>davexunit: see the latest commit in master <davexunit>I just did some goops hacking last night where I was re-evaluating my class definition frequently <dustyweb>so it's more of an explicit decision to live hack <dustyweb>wingo said they were unsure which was the right default <dustyweb>I also feel like in general when I'm using GOOPS, a large motivator is the live hacking <dustyweb>but I think having the option to turn it off or on is good <davexunit>I usually do non-default things when I need to make performance optimizations <davexunit>having the default path be the happy live hacking path is what I prefer. <dustyweb>make things flexible, then eventually they ossify as things set into place? <davexunit>like usually I have a few core data types that I do crazy things with to make them fast. <davexunit>and that usually means not using goops anyway <dustyweb>davexunit: btw the other side of this means we're looking to see more of a unification of GOOPS and records ie records also being classes <dustyweb>(I think the choice of default isn't a cost there, it's just a decision that needs to be made, but I'm excited about the refactor) <davexunit>that is a good thing. guile 2.2 sort of broke some things there. <davexunit>so yeah, looks like I like all of that news except the default metaclass thing. <davexunit>by chance does any of this work help set us up for optimizations like struct field/goops slot unboxing? <davexunit>that is probably the biggest pain point for me now. I have a handful of types for linear algebra (2d vectors, 3d vectors, matrices, quaternions, rectangles) that are merely wrappers around bytevectors with a lot of ugly supportingcode. <civodul>we're at ~80 bytes per source property <civodul>so if you have a source file with 2M pairs, source properties alone take ~152MiB <civodul>(i think it was the same order of magnitude in 2.0 and earlier) <mwette>Hi all. Is it possible to capture a Guile keyword (e.g., #:foo) as syntax in a syntax-rules pattern (e.g., syntax-rules (#:foo) ...) <ArneBab_>mwette: it’s possible that you might need syntax-case for that, because you want to break hygiene <ArneBab_>you could also just defer that to a helper function which gets the argument list. <mwette>ArneBab_: Thanks. I am using syntax-case with fenders for now. <mwette>It seems the syntax for define-module quotes the expressions that occur after keywords. I want to use an expanded form of that but I think I need unquoted expressions after keywords, in order to deal with system dependencies. I need to look closer at the syntax for define-module <manumanumanu>but you should not include the #: in the literals ... part <manumanumanu>and I think it might work with syntax-rules, since matching keywords is not breaking hygiene