<gazon>say i'm looking to copy a package definition so i do: find /gnu/store -type f -name services.scm; and I get several hits including two /gnu/store/...-guix-latest/gnu/services.scm; presumably one of them is the real guix-latest, but how to tell?
<gazon>or to put it another way, how to find the most recent package definitions?
<davidl>gazon: the file dates aren't different? (ls -al)
<gazon>davidl: those particular files have the same date, and content.
<ng0__>can I put software which absolutely depends on each other into one commit?
<bms_>I've had a large idea/project in my head for a while and I've never really tried to implement it. I think it fits well into this topic.
<rain1>well please tell us about it? :D i would love to hear
<bms_>Okay... here goes. It's not quite original and I've gathered inspiration from a lot of places. I'm also probably not qualified to undertake it, but I like to learn as I go. It's also not completely fleshed out in my head, but the plan goes something like this:
<bms_>Tell me if at any point I say something wrong, by the way.
<bms_>So, I start with a (very) small implementation of Scheme in Assembly (this has been done before, of course. The most recent thing of this sort that I've found is no longer online). I only add the very basics required to adhere to the standard.
<bms_>In this Scheme, I write an assembler to assemble the interpreter. (It's kind of a chicken-and-egg thing). From there, I write a VM, also in Assembly (or if possible, my Scheme) for a simple processor and instruction set of my design.
<bms_>Of course, that's a lot to undertake, but just so I can make it even harder, I need to implement this processor in hardware. (Preferably discrete parts and ICs, but that could take years so maybe just with FPGA boards I still need to look into th
<bms_>Now, and I should have said this before the CPU part, I need to write an OS in Scheme and Assembly to run on my CPU.
<rain1>yes it sounds great! a lot of the parts of that could be very useful to bootstrapping guix too
<bms_>It's a huge project, probably one that I'll never finish, but I like to try those sort of projects.
<bms_>That's true. Even if I don't finish it, this wiki would probably be the best place to put my research and document my progress. If I do get anywhere, I want to keep some sort of journal for future reference for myself and others.
<OriansJ>bms_: I really want you to achieve your goal, since it looks like it shares a lot with mine. But I must be honest, right now my goal is finishing the path to the GCC bootstrap. So, hardware development might be a bit slow.
<bms_>That's fine. I'm not nearly to hardware development so you're already ahead of me. Thanks for the support too!
<reepca>Oh, according to Wikipedia that requires proprietary microcode. Never mind then.
<reepca>Now I wonder which vendors don't require proprietary microcode...
<OriansJ>reepca: sadly that list is growing smaller by the day for high performance chips, however is a wonderful growing list of FPGA designs that are becoming available
<reepca>I don't suppose it'd be feasible (ignoring legal for a moment) to try to reverse-engineer it?
<OriansJ>reepca: actually it is entirely legal to reverse-engineer it, however you would require a separate person who has never inspected the binary to write the replacement based on the spec that you write while reverse-engineering it
<OriansJ>reepca: it also probably could be done with a couple months of work
<OriansJ>there are hundreds of blob free, reverse engineered firmwares for graphics cards made by the community. Usually when the vendors ignore or snub linux developers who want to use the hardware they paid for.
<reepca>any for the AMD stuff from about 3 years ago?
<OriansJ>janneke: correct, as eval.c is the heart of the guile bootstrap
<janneke>yeah sure, the c compiler can get *much* simpler-->must be done
<OriansJ>janneke: do you mind if I add a directory to MES to include some bootstrapping tools that would be required on Linux?
<janneke>OriansJ: what kind of tools would be in there?
<OriansJ>minimal tools required by the guix bootstrap, designed to buildable by MES
<janneke>OriansJ: ah yes, I haven't given that any attention yet; it's another important step to close the loop
<OriansJ>more, a text editor, tar, mkdir, execute_enable, xz and possibly a trivial enough bash replacement to allow the bootstrapping of bash
<janneke>OriansJ: actually, that's a great idea -- if we are taking actual steps towards actual Guix bootstrapping that could create/enable much easier involvement of others
<OriansJ>janneke: plus by having MES only having to focus on leveraging guile, MES should get a lot simpler of a bootstrap which should allow faster development and less waiting to get started
<janneke>wow, i just see what bms_ wrote -- scheme in assembly, that's very much like Mes!
<OriansJ>janneke: it is exciting times, more and more people seem to want to build the very things we are working on.
<janneke>sneek: later tell bms_: wow! hi! would be nice to chat some time (soon). i don't really care all that much about the current Mes Scheme intepreter prototype in C; it could stay like this, could be changed into annotated assembly, will most probably be rewritten to be a Scheme compiler in LISP -- but you gotta start somewhere!
<amz3`>guix build: error: build failed: derivation `/gnu/store/gqj31aaph5qw5c2gvy358458pdhvaakm-guile-microkanren-20170527.af005ffc-checkout.drv' has incorrect output `/gnu/store/7m8knxvfhyvg58i39i8qav734kgq4npw-guile-microkanren-20170527.af005ffc-checkout', should be `/gnu/store/f9zxsfa6pqgp7z34pr3s7z1fzqiajsh9-guile-microkanren-20170527.af005ffc-checkout'
<ijp>amz3`: what's the deviation, just that it is slightly out of date?
<OriansJ>janneke: thinking further, when I modify the makefiles I'll create 2 separate build paths. One using MES.c to bootstrap everything and another using guile to help people get productive much faster. That way those who want the minimal dependency have it and those wishing to make MES a better C compiler can get started faster
<janneke>yeah, i was thinking about that, what about gcc-1.3 or so?
<ng0__>I have a question about this agetty topic and kernel-arguments we talked about 2 months ago. I'm writing a config right now for the server which requires this. when I need to pass more speeds(?) - link coming in ext mesage - do I just append it comma separated to the kernel-arguments?
<rain1>it's a little scary.. i think this is an aspect of free software that has been overlooked and a lot of dust accumulated there..
<rain1>these are the results so far, with the versions and so on
<OriansJ>today is going to be a long day of assumption checking by the looks of it... rain1 is checking our gcc build assumptions, I'm checking janneke's MES build instructions (I am really tempted to go old school for reducing the build complexity)
<rain1>possibly of interest: TENDRA, Cint (interpreter), clang
<OriansJ>rain1: I am trusting you to chase down that rabbit hole and find that narrow path of GCC bootstrap that makes janneke's MES job easier
<OriansJ>although worst case we find nothing and end up having to turn MES into a world class compiler, which might be fun too :D
<ng0__>I wish I could afford a lifestyle where I'm living in the summer very far up north and in the winter closer south.. or at least somewhere with a decent relatively stable climate zone.
<catonano`>ng0__: I was born on the shores of the Mediterranean. I discovered that i LOVE the Berlin winter and in summer I prefer the areas around the Mare Nostrum. So it's the other way around for me :-)
<ng0__>I picked it back up, indirectly. I'm learning this shepherd service system
<ng0__>I wanted to be finished in january, but understanding is in the way. so be assured I'm working on it, I just had to sort some things out
<ng0__>I have this darkhttpd and a gopherd service to test my skills on so that I can continue to debug the gnunet-service. Maybe it makes no sense, but I need to understand the behavior of services better. gnunet I understood on Gentoo.
<lfam>Can somebody do me a favor? Please find and download the source of libtiff 4.0.8, and then paste the SHA256 or `guix hash` here
<lfam>I'm asking because it's distributed over an unauthenticated protocol and there is not integrity checking mechanism available
<ng0__>where it fails is at the /etc/ssl already existing.. I know I might've missed documenting something
<cbaines>I've been trying to package discount, a markdown implementation. The markdown binary it installs seems to not link against the shared library correctly, as I get an error: /gnu/store/criv9h98djbl454jirg6nyd4bq8hpm77-discount-2.2.2/bin/markdown: error: depends on 'libmarkdown.so.2', which cannot be found in RUNPATH
<lfam>brendyyn: You can allow ntpd to make large adjustments in the GuixSD configuration if you think this will happen again. Otherwise, by default, when you request a clock adjustment with ntpdate it will happen slowly, since big time jumps can wreak havoc with many applications.
<ng0__>hurgh.... our disk-image is full qemu and can be used by kvm and just expanded, right? I think there is something special about in-berlin vservers and I should send them the disk
<OriansJ>and a major upgrade to the stage0 build process for the lazy. The roms builds are new included in the makefile and a simple make all will now build EVERYTHING
<lfam>ng0__: What do you mean by "full qemu"? You can run it in QEMU
<lfam>I tried using the disk image on serveraptor, and it did work, but it was impossible to reclaim the partition used by the disk image without some "out of band" storage management tools, which that service lacks.
<lfam>This is why I pushed for us to release a vm-image
<OriansJ>now the process of starting to hack on stage0 has been reduced to git pull, cd stage0 and make all which completes in under 30 seconds on even older P4s
<cbaines>On another subject, as you two are talking about it, how close is a ISO installer?
<lfam>cbaines: Not done yet, but several times people have dumped their research on guix-devel. We "just" need somebody to finish it
<cbaines>I saw some things about ISO... file systems that looked promising
<lfam>What I don't understand is why the industry is still standardized on ISOs, when optical devices are really quite rare at this point.
<cbaines>I guess you'd have to ask someone who operates a VPS provider
<lfam>Yeah, I'm just ranting. I know the answer: it works for us
<cbaines>I'm interested in Bytemark, and you mentioned Serveraptor, both of which support ISO installers
<ng0__>I have 2 more formats I don't understand, maybe some sysops here heard about them. from a datacenter in Sweden and a hoser in iceland outsourcing them to a cloud format. need to buy some food now.
<lfam>cbaines: Actually, Serveraptor takes a raw QEMU image.
<lfam>cbaines: I guess they are using "ISO" in the colloquial sense. Our USB installer image works, and they confirmed they don't need a "real" ISO standard image
<ng0__>8Our cloud serivce is based on our sister company GleSYS cloud. I would recommend that you reach out to GleSYS directly in this matter to get access to the control panel which I feel is going to be useful for you. :)
<lfam>Soon, Serveraptor will offer GuixSD "out of the box"
<lfam>Otherwise, I think you have to do `guix system init` from another distro.
<ng0__>I hope that IN-Berlin works out, they kinda date back to the times of mailboxes :) I don#'t want Hetzner..
<ng0__>if someone can pay for 1984 to test the vm-image and give them feedback that would be really good. I can't pay them next month, but they are really looking forward to include GuixSD in their default set once we offer an iso
<ng0__>and plain qemu can be used aswell right now (if I don't mix them up)
<ng0__>no. iso will be added, but qemu can be dd'ed at the moment.
<sneek>bms_, janneke says: wow! hi! would be nice to chat some time (soon). i don't really care all that much about the current Mes Scheme intepreter prototype in C; it could stay like this, could be changed into annotated assembly, will most probably be rewritten to be a Scheme compiler in LISP -- but you gotta start somewhere!
<lfam>ng0__: I think the difference is that the attachment had a MIME type of 'application/octet-stream' instead of 'text/x-patch', so mutt displayed it differently. But, that shouldn't drop the last character, which would have been a newline and not a parentheses.
<ng0__>oh.. I used the web interface of my mailserver for a while.
<ng0__>I kind of expected a question why I do not build the documentation. I did not comment that the documentation building would require some kind ofdocumentation tracking application, graphical, to be installed
<reepca>Question... was there supposed to be an easier way to set up GPG than manually figuring out where to put gpg-agent.conf and how to make it know which program to use for pinentry?
<OriansJ>janneke: after a couple hours to trying to figure out your build steps from your Gnumake file, I have to admit you are much much better at it then me. That being said, if you want people to hack on small pieces of it, you really need to make it trivial to understand the build process. Like so: http://git.savannah.nongnu.org/cgit/stage0.git/tree/makefile
<bms_>You may have seen: I started a wiki page yesterday. Currently, I'm figuring out a bit of a plan of how I'll go about doing it. And researching.
<OriansJ>bms_: the best step is to do what seems obvious and easy to do
<OriansJ>Thanks to Turing Completeness, any Turing complete instruction set can implement a lisp given sufficient memory and time
<OriansJ>bms_: If you want advice on short term tasks to achieve that goal of yours, I'll need to know what technical work you think is most fun.
<bms_>I love writing things in LISP (Scheme is what I've know) so that's probably the most fun part for me, but there's barriers to that in this project. I enjoy C and AT&T Syntax Assembly too. Those are the languages I know best, if that's what you mean.
<bms_>I also tend to like computer history, which isn't particularly relevant, but is the inspiration for some of this project. Particularly the hacker culture of the 70s.
<bms_>Otherwise, I like seeing things come together from small pieces. I like doing things from the ground up. It makes the end result more satisfying.
<bms_>I'm unsure of whether I should really write my own simple Lisp or if it would actually make more sense in the long-term, even if it's going to be more difficult at first, to bootstrap a simplified Guile.
<Apteryx>I'm experimenting with a change the search-path-specification record. When I attempt to "guix environment guix", it seems like some Guix from the /gnu/store rather than the one I modified in my git checkout is used. Why is that? I've got /root/.config/guix/latest -> /home/maxim/.config/guix/latest.
<OriansJ>rain1: indeed I am just curious if we can now get janneke an easier target to bootstrap