IRC channel logs
2017-10-01.log
back to list of logs
<amz3`>random_numbers: no it's different <amz3`>random_numbers: the diff is that about JS Objects which are convert to hash tables instead of alist <random_numbers>Any publicly available repo that has it? Because the gitlab one apparently requires permissions or doesn't exist anymore. <MuteParrot>Is there a convienent way to (export ...) all the getters and setters generated by GOOPS classes that reside in a module? <daviid>ah, but that is not the same project as the one developped by dustyweb <daviid>better ask dustyweb , the login gitlab to access is a 'mistake', i'm pretty sure of that <random_numbers>daviid: Yeah, dustyweb answered with the right link a few lines above. <random_numbers>It's a common use-case and the current Scheme library environment favors reinventing the wheel. <daviid>ok, didn't see dustyweb answer, tx <dustyweb>hey, I didn't totally reinvent the wheel... I used davexunit's code as a basis ;) <dustyweb>but it may be adjsuted soon to support other options for the map bit <dustyweb>the current fashes support is kinda hashed in <dustyweb>random_numbers: yeah functional hashmaps <dustyweb>it's a library written by wingo, mostly based on clojure's datastructure design iirc, and I bundled it <random_numbers>Indeed. As it seems XML APIs are disappearing. I don't think I'll miss them too much. <Apteryx>Hello Guile! Where is match-lambda defined? <daviid>Apteryx: note this module actually uses match.upstream.scm ... <Apteryx>I'm a bit confused with matching a symbol which happens to be bound to a record. I'd like to match the symbol itself if possible. Should my match pattern by something like ('symbol) ? <Apteryx>e.g., supposing the symbol is named texinfo-5, should my match be (('texinfo-5) ... ? <daviid>Apteryx: not using record so much, but there are examples in guix, and according to the doc, you'd do something like <daviid>(match texinfo-5 (($ <record-ame> pat_1 ... pat_n) your code here)) <daviid>Apteryx there is an example in the doc actually, look at match doc ... define-record-type person ... <daviid>section 7.7 pattern matching ... <Apteryx>yep I'm looking at this one... looks like they omit the <...> around the package symbol? <Apteryx>but I see instances in guix where it's being used. hmm. <daviid>surrounding record names with '<' and '>' is merely a convention <Apteryx>oh, I see! Sorry, package is a guix specific. <live_the_dream>im trying to package guile 2.2 for an android project called termux. im just wondering about cross compiling guile <live_the_dream>is compiling 32 bit hosts from 64 supported or will i have to compile guile in 32 bit first ? <random_numbers>Any recommendation for SSL/TLS libraries for guile for HTTP-GET/POST kinda stuff? <amz3`>I need to work with epoch... <amz3`>i need to convert epoch in seconds to epoch in days <amz3`>I think it's just a division <janneke>amz3`: if you don't need to be accurate and don't care about leap seconds, sure simply divide <amz3`>it's for gathering some stats in my blog <amz3`>but I guess nginx logs will do, I just need to configure the referer thing <amz3`>seems like its the default nginx configuration <amz3`>the thing is only, it ain't perfect but it does the job <amz3`>I can go back on hack on something extra ;) <m3tti>i've got 2 questions. first what is your main editor for writing scheme and is anyone using scheme for web apps?? <m3tti>emacs because of the inferior lisp shell? <amz3`>m3tti: emacs because it's my default editor, but honestly, I don't use often the scheme integration called geiser <amz3`>janneke: not really, i seldom use. The only feature I use, is macro expansion but I seldom write macros <janneke>interesting...i guess geiser (next to paredit, of course) is what moved two juniors away from their modern editors and got them hooked on emacs <amz3`>m3tti: honestly from my point of view, any editor will do <m3tti>i was a former emacs user but i've switched to vim <m3tti>because i love the movements in vim <m3tti>and somehow i've the feeling that emacs is driving away from its cli editor stuff <m3tti>most of the tools i've seen uses the gui part of emacs <m3tti>that was my main reason to switch to neovim to be correct <m3tti>and the second question is because i like to write apis and i wasn't sure if there are any good scheme web frameworks/libraries out there <m3tti>and if you are looking for stuff for scheme google and co aren't a big help <m3tti>mostly you don't find anything about scheme <m3tti>and i don't know why scheme is awesome <m3tti>it's like lisp but more simple :D <m3tti>and what is the reason for guile over chicken scheme or gambit <ft>m3tti: ^- that one may help. wingo is one of the Guile maintainers. <m3tti>i love oppinionated blog posts <janneke>dustyweb: was just thinking..with the OO hype coming to an end, iwbn if we had something better than records and less OO than GOOPS. Any ideas there? <dustyweb>janneke: GOOPS is pretty nice! And I think with wingo's recent work on git master to unify the underlying structure of GOOPS and records, that puts us in a good place <dustyweb>use goops when you want dynamic live hackability <janneke>dustyweb: GOOPS /is/ pretty nice. I'm using it with only #:getter and I like define-method better than (define (o) (match o (($ <...>)))) <dustyweb>one of the nicest things GOOPS gives us is its generic methods. But I think there's room for more exploration in the generic methods space <dustyweb>after all generic methods are effectively the same as how pattern matching is used in languages like Haskell, but done at runtime rather than compile time <janneke>dustyweb: do you have a (lambda (o <class>)) macro? i've been thinking of writing something like that <dustyweb>janneke: though in that case why not use match-lambda? <janneke>we also need define-method-public ... those things make me wonder if any but you and I use GOOPS ;-) <dustyweb>can generic methods really be used without being bound to a generic? <dustyweb>you can use generics without defining them at a toplevel <dustyweb>they're objects that can be passed around <dustyweb>hence why I'm not sure how you'd do it with lambda <janneke>hmm, I'm still scared of match-lambda prolly from the time i was scared by macros ... will have a look <dustyweb>match-lambda is super nice and I use it all the time :) <dustyweb>as for "more room for experimentation in generics" <dustyweb>Sussman plays with a predicate-based generics system <dustyweb>unfortunately making it fast means appending caching to an object <m3tti>is it better to use define-record or could i use alists <m3tti>cause i'm used to that kind of datastructure in javascript with json objects <janneke>dustyweb: skimming through those pdf's...so "we"'re still experimenting...that's pretty amazing <dustyweb>m3tti: you can always use what you choose; alists are easy to follow and serialize but their access is O(n) <dustyweb>janneke: yes that class' problem sets are pretty incredible <janneke>also, i stopped watching wingo and guile master since 2.2.0; that was a mistake :-) <dustyweb>m3tti: GOOPS is an "object oriented" system for Guile; it's very similar to Common Lisp's CLOS <dustyweb>m3tti: it's nice because it's very live hackable and provides generic methods <dustyweb>m3tti: records are fast and minimalist, and (srfi srfi-9 gnu) provides immutable records <dustyweb>m3tti: IMO if you don't know what you want: <dustyweb> - want to explore as you go? start with GOOPS <dustyweb> - know you need immutability and speed? use immutable records <m3tti>just wanted to know whats possible <dustyweb>these days I start with GOOPS and refactor to something else if appropriate <dustyweb>alists work and are there for you if you want them <m3tti>and currently i'm working on an card game <dustyweb>m3tti: give GOOPS a try.. generic methods may save you a lot of work <dustyweb>that's just a recommendation. do as you want! <dustyweb>janneke: btw one way to do the predicate based dispatch would be to use object properties <dustyweb>but I get a weird sense that nobody else uses object properties in guile :) <dustyweb>also, checking a list of predicates is inherently linear I think, though could be organized to move "hot" predicates to the top <janneke>dustyweb: i guess i have some affinity for minimalism, esp. because of developing mes <janneke>i'm using a kind of goops--, and iwbn to have records++ grow towards that <dustyweb>janneke: I think that's what's happening now :) <janneke>assuming records++ is just a couple of macros that any simple scheme can run <dustyweb>janneke: though! you could make predicate generics which are very minimalist <janneke>yeah, i haven't really looked at that and stuck with records... <dustyweb>and then you could use anything with them.. alists, goops, records <dustyweb>granted then you *really* want caching ;) <janneke>i actually wrote an extension to `match' that would transparently handle goops/records and `typed lists' <dustyweb>oh! I read an interesting paper recently that suggested adding *macro* generics <janneke>not unlike your serialization thingy '(type-symbol slot1 slot2 ...) <dustyweb>janneke: so IMO that was pretty interesting <dustyweb>janneke: yes, I wish I could find the paper! I found it to be very interesting. <dustyweb>and in fact it used match as an example of where generics would be useful <dustyweb>and how without generics macros are very "rigid" <dustyweb>ie you can't add the GOOPS matching example you suggested or any other new syntax without forking the pattern matcher <dustyweb>cmaloney: ok! geting some client work done from the airport. <dustyweb>cmaloney: heading to Rebooting Web of Trust <cmaloney>dustyweb: Oh cool. So it's both business and pleasure :) <rekado>does anyone here have an idea what I can do to avoid problems with Guile compilation on a machine with 192 CPU cores and 1.5TB RAM? <rekado>can I trick Guile into assuming fewer resources? <rekado>I’ve already tried “taskset -c 0 …” to only allow it access to one CPU, but that didn’t help <amz3`>1.5TB of RAM that's a lot... <taylskid>wilo[m]: oh crap I'm sorry, I did not mean to highlight you