IRC channel logs

2017-06-21.log

back to list of logs

<ijp>if you remove them, boot-9 "only" takes 1.3MB
<ijp>I conjecture there are similar savings in a lot of files
<catonano>spk121: I neve had that but I'm happy about thhis fix anyway
<ArneBab_>spk121: nice! thank you!
<Muto>I built Guile from source on Debian stable, but now whenever I 'apt upgrade', at the end of the list I get a "libguile.so is not an ELF file: it has the wrong magic bytes at the start
<daviid>Muto: you can safely ignore this warning
<sneek>Welcome back daviid, you have 1 message.
<sneek>daviid, paroneayea says: https://lists.gnu.org/archive/html/guix-devel/2017-06/msg00134.html
<Muto>daviid: Okay, thank you. I was just worried in case it was something bad.
<daviid>Muto: no, nothing to worry about, though I don't recall the detail, someone else may explain if needed, but it's a 'false positive' warning
<daviid>paroneayea: yes, I did see that message, tx. I'm very much in favor of slowly but surely grow Guile-Lib with Guix 'stable' and well identified functionality that might precisely 'land' in Guile-Lib, just as Ludovic answered, if not in Guile core directly... But I couldn't find the time to address this, yet have to answer Alex and Matt for their offer to contribute (plist, regexp ...)
<daviid>paroneayea: note that guile-lib is a bit of a 'strange beast' as it is :), because the manual is generated form the source (which is not the way I usually work and I don't know the 'details', cause so far I mererly contributed on the admin side, to keep guile-lib 'alive', modernize its autotools ...), and the tests use its test-suite :), based on goops, which is perfectly fine for me, but guix uses srfi-64 if not mistaken...
<daviid>paroneayea: but nothing two difficult either and Guile-Lib really need to become what it always ment to be: "an accumulation place for pure-scheme Guile modules, allowing for people to cooperate integrating their generic Guile modules into a coherent library. Think "a down-scaled, limited-scope CPAN for Guile"."
<daviid>paroneayea: so, help welcome of course! let's try to get Alex's plist in Guile-Lib as a little exercise ;), wdyt? Or some guix functionality if you prefer, I guess what I mean to say is I'm ready to play with the idea but I need help (time wise principaly, but module names, doc, tests and design 'wise as well ...) so everything we do is 'robust', security 'free', well tested, debuged ...
<daviid>paroneayea: I did think about changing the web site as well, nothing about the previous design of course, but to get a 'fresh wind' blowing on it :), help welcome there as well...
***random-nick is now known as Guest33714
***random-nickname is now known as random-nick
<rekado>tb
<rekado>oops
<civodul>:-)
<civodul>it's quiet here
<reepca>Is there a function equivalent of AND and OR? trying to pass them as functions causes complaints about failing to match syntax patterns
<civodul>reepca: nope!
<civodul>sometimes 'every' and 'any' from SRFI-1 are what you want
<dsmith-work>greets
<OrangeShark>hello
<civodul>howdy!
<sporgj>Hey guys, I'm new to guile
<sporgj>what exciting stuff is there for a newbie?
<OrangeShark>sporgj: what sort of stuff are you interested in?
<cmaloney>Hello, sporgj. I'm a newbie as well
<cmaloney>sporgj: How familiar with scheme are you?
<sporgj>Over the summer, I wanted to get familiar with scheme/functional languages
<sporgj>tried haskell and others: didn't like their toolchain
<sporgj>guile just seemed the easier to install and maintain
<sporgj>cmaloney: I'm current going of the SICP
<sporgj>OrangeShark: my hope is to become a developer for the language and standard library
<cmaloney>Ah, very cool
<sporgj>OrangeShark: I'm thinking mostly about improving things like the REPL interface
<OrangeShark>sporgj: oh, so you want to contribute to guile?
<sporgj>OrangeShark: yes
<cmaloney>I'm in a similar boat (wanting to get my feet wet with functional languages and not have that introduction be 100% through JavaSCript)
<sporgj>I use it here and there for gdb
<sporgj>and to me it's the best scheme I've played around with
<cmaloney>Yeah, Guile (And Racket) have tickled my fancy.
<OrangeShark>sporgj: something you might want to check out that was discussed yesterday is guile-lib, daviid mentioned wanting to revive the project and add more modules.
<sporgj>cmaloney: lol I think you've spying on me
<sporgj>cmaloney: I installed Racket too
<catonano>cmaloney: you know about the SICP, don't you ?
<sporgj>has a lot of libraries but the toolchain is not the best
<catonano>also the little schemer
<sporgj>catonano: yes that's what I've been going through
<sporgj>while applying guile-specific code
<cmaloney>catonano: I've been rading SICP and Realm of Racket
<cmaloney>The Little Schemer doesn't work for me
<catonano>sporgj: very good. When I went trough the SICP I used the MIT-scheme because I didn't want to run into ANY incompatibility
<cmaloney>I've had a hard time with the style of that book
<catonano>cmaloney: ok, I never trried the little schemer, I know it's famous
<catonano>cmaloney: I tried with a book on relational programming. The style is liek the one of the little schemer. I have to say I don't lie it either
<cmaloney>It is. I'm sure it works for some but it didn't work for me.
<catonano>the SICP is great but I agree that a less intense introduction to scheme would be useful
<catonano>I don't know the racket stuff
<catonano>I got my feet wet with Clojure
<catonano>and now I am gradually moving to scheme
<sporgj>catonano: please refer me any resources that could be of use
<cmaloney>same. I found common lisp a little too dense for me
<catonano>sporgj: well, if you start from Clouure there are tons of materials, bothh books and footages
<catonano>there is "Cloure for te brave and true" you can read it or free on line
<catonano>thre are also some classes as video footages
<catonano>they are relatively cheap
<catonano>Clojuure is a lisp but it's a way to get started
<cmaloney>(played with Land of Lisp, which is excellent, and a litle of Clojure for the Brave and True)
<catonano>you can use Emacs, it has a great environment for Emacs
<cmaloney>I have a No Starch book-buying problem
<cmaloney>(confession: I used to use Emacs and now I can't handle it since I got comfortable with Vim)
<random-nick>cmaloney: did you try using evil-mode?
<catonano>For example I was introduced to te game of life in clojure. Ten I made the same in clouurescript, it ran in the browser. I saw a game of life made with Guile and the Gnome native stuff
<cmaloney>Yes, and I kept finding the 20% that wasn't implemented.
<catonano>well clojure has some great support for Vim too
<catonano>and I guess that movin Vim to Guile shouldn't be that terrible
<catonano>I neverr tried the land of lisp
<catonano>oh well, there are too many things
<cmaloney>Yep
<cmaloney>sporgj: I've found that SICP is a little bit dense in the comp sci theory
<sporgj>hmmm
<cmaloney>but it's helpful because you're trying to learn new ways of doing things
<sporgj>cmaloney: I'm a grad student, so it's not so bad
<sporgj>jus needed the exposure to this form of thinking
<cmaloney>Ah, it's been 20 years since I was in a comp sci program
<sporgj>but will definitely look up with clojure stuff
<cmaloney>so maybe it's ossification
<cmaloney>So yeah, that will likely be an easier read for you now
<cmaloney>Have you looked at the guile manual proper?
<cmaloney>The quick intro to scheme is well-written
<sporgj>cmaloney: yeah, for things like how to read command line arguments
<cmaloney>kk
<sporgj>or other system interfaces
<cmaloney>ACTION tries to think of resources that aren't Racket.
<sporgj>cmaloney: Racket has a lot of stuff
<sporgj>and I'm love with scribble
<sporgj>it's like the perfect midpoint between Latex & Org-mode
<cmaloney>I've been working through a little bit of Scheme / Racket on my blog
<OrangeShark>sporgj: cmaloney: http://www.schemers.org/ has some links to books on scheme as well as other things
<catonano>cmaloney: were is your blog ?
<cmaloney> http://decafbad.net/tag/scheme/
<catonano>cmaloney: thanks
<cmaloney>np
<catonano>I gotta go. I'll read yo again soon ! Bye !
<impossibru>Is it possible to save guile's execution state somewhere to a file, shutdown guile, and resume it with the saved state in the file?
<cmaloney>impossibru: possibly? :)
<cmaloney>impossibru: Not sure what the internal support in guile is for that but the OS may support it
<cmaloney>are you looking for something like Python pickling?
<impossibru>I don't know Python pickling
<cmaloney>pickling takes an object and writes it to disk
<cmaloney>where it can be restored later on
<impossibru>I was thinking of using Guile in an Android app, and at any point the OS can kill the process. I think other than a callback that is called before the event happens, there are not many builtins to save the state of running processes (but I'm not 100% sure)
<dsmith-work>impossibru: Pretty sure nothing like that exists right now. Guile *used* to have an unexec a long time ago.
<impossibru>cmaloney, I think that would help if it also works for the evaluator itself
<davexunit>saving the running state of a process is a tricky thing
<davexunit>python's pickling is also inadequate
<davexunit>the only thing that really makes sense is to write a custom procedure that will serialize your application's state to an s-expression and write it to disk.
<davexunit>and write another procedure to load it.
<impossibru>Is it possible to get the state of Guile itself?
<impossibru>I'm thinking of the case where Android kills Guile while Guile is eval-ing something.
<davexunit>no
<impossibru>It might be possible to suspend termination until after the eval is done, though...
<davexunit>not that I know of
<davexunit>that seems extremely unreliable
<davexunit>what happens in the event of a software upgrade?
<davexunit>or tinkering at the REPL?
<davexunit>seems like the wrong level of abstraction to be working in
<impossibru>Hm..
<impossibru>Yeah I guess it's not easy
<impossibru>Ok, thanks for the info guys
<impossibru>Have a good day
<br0ken>hi
<user-and-dev>Hi
<avoine>wingo: in fibers, would it make sense to add an (all-operation ops) to synchronize more then 2 channels or it needs changes in the way channels work?
<avoine>or more likely I'm doing it the wrong way ;)
<amz3>héllo!
<amz3>I was failing to see the obvious, what wiredtiger needs is not a shiny new toy DSL, but a good old standard shit like SQL
<manumanumanu>amz3: sql isn't half bad actually
<manumanumanu>it only took me 10 years to start appreciating it :)
<amz3>me too!
<amz3>I say the above like that because in my mind, I wondering whether it's more useful to improve the DSL to match better SQL or to create an end user app.
<amz3>I've been basically feedling with no-sql stuff for 5 years
<amz3>fidling*
<amz3>going back with better knowledge of databases and looking at SQL allows me to say that SQL is well suited for low complexity queries
<amz3>it does midly complex queries very well
<amz3>it factors common query patterns
<amz3>the thing in SQL I'd like to have is the ability to simply 'drop' to a real language
<amz3>for instance, it happens that I am doing two loops in serial to correctly render a html report, where a single loop could be enough
<amz3>a language that I already know I mean
<amz3>prolly using pl/sql in postgresql you can do whatever you want, but I don't know pl/sql
<amz3>also when using pl/sql your are half forgeting about vendor-lockin
<amz3>I will add SQL in wiredtiger on my todo list
<OrangeShark>amz3: have you heard of C#'s LINQ?
<amz3>I've reading about old posts of mine http://hyperdev.fr/notes/getting-started-with-guile-uav-database.html
<amz3>OrangeShark: yeah, Linq is similar to traversi framework in grf3 library
<amz3>afaik
<amz3>I never used it for the real, but most ORMs have inherited the "Linq-way" of querying data
<amz3>it was like a revolution when it came out
<OrangeShark>amz3: it also has a SQL like syntax version
<OrangeShark>you can either do this sort of object based way or write SQL like code in C#
<amz3>that's a great idea, I would love that
<OrangeShark>it can also be used on all their collections too
<amz3>no?!
<amz3>that's awesome, but... they have several backends for the API or they have an abstraction on top of the rdbms table to threat it like collection?
<OrangeShark>amz3: I mean they have the same API over their collections
<OrangeShark>so treat both databases and collections with the same code
<amz3>I am wondering how they bridge the gap between databases and simple collection, because the API of databases is much different compared to Collections' API
<ecraven>amz3: is it, though? things like filter, find, map, with accessors, would work well on both, I think?
<amz3>ecraven: 'slice' is missing from that list
<OrangeShark>amz3: looking at the documentation, seems it used an interface for the collections and other data sources
<ecraven>yea, but I think a collection of objects and a traditional relational table are not that different, with a bit of squinting ;)
<OrangeShark> https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/linq/introduction-to-linq-queries
<amz3>the problem I see is that if you threat a database like a collection you won't be able to take advantage of performance tricks
<amz3>found in databases
<amz3>OrangeShark: that's what I was reading
<OrangeShark>amz3: I think it is abstract enough that it can perform some optimizations for performance. I haven't really looked too much into detail of how it works.
<ecraven>amz3: that might depend on your query language
<amz3>yes you are right
<OrangeShark>amz3: oh look at IQueryable
<OrangeShark>so it builds of the query
<OrangeShark>then at the end it will call execute
<ecraven>and of course your use case.. if you have Big Data and want to work with Rollup and Cube and friends, you might want to go to dedicated solutions
<OrangeShark>so whatever was built up can be manipulated before you query the database
<amz3>ecraven: what is Cube and Rollup?
<manumanumanu>has anyone made something similar to rackets for-loops in guile?
<stis>I have a direct port of almost all that
<stis>using syntax-parse
<stis>otherwise I think that the standard reference is foof loop
<manumanumanu>stis: cool! anywhere I can look?
<manumanumanu>I am half-way there using syntax-case. no error reporting whatsoever, but it is a fun exercise
<stis>manumanumanu: https://gitlab.com/guile-contract/guile-contract
<stis>look for compat/racket/for.scm
<stis>You need guile-syntax-parse: https://gitlab.com/guile-syntax-parse/guile-syntax-parse
<manumanumanu>stis: does it handle internal loops using #:when/#:unless?
<manumanumanu>no i guess?
<manumanumanu>syntax parse seems _nice_
<stis>manumanumanu: no it does not handle #:when and yes syntax parse is mighty cool
<Muto>Has anyone managed to get guile-reader built from tarball with Guile-2.2?
<manumanumanu>stis: is it anything like the racket one? or do I have to read source code to get any documentation?
<stis>it's a port of racket's syntax-parse since say 3 years ago, standard stuff should be the same
<stis>you can also ask here if i'm available
<stis>so please use racket docs
<Muto>I can't build guile-reader on Debian stable with Guile 2.2. Is there a way to do this?
<stis>I just saw that I had a racket for not checked into a repo, I just did a repo guile-for for it
<stis>see: https://gitlab.com/tampe/guile-for
<stis>manumanumanu: ^^
<stis>this is the second generation
<stis>of that code
<ijp>js proxies are so helpful for debugging
<ijp>weird, it looks like the vm primitive for apply takes one more argument than it used to
<ijp>that can't possibly be right, since it would show up in blame