IRC channel logs

2022-08-04.log

back to list of logs

<wingo>also. trying to upgrade an old guix-on-ubuntu installation:
<wingo>wingo@milano:~$ guix pull
<wingo>Migrating profile generations to '/var/guix/profiles/per-user/wingo'...
<wingo>guix pull: error: symlink: File exists: "/var/guix/profiles/per-user/wingo/current-guix"
<wingo>ah wrong channel sry :)
<civodul>wingo: that vaguely rings a bell about a bug from a few years ago though
<sneek>civodul, you have 1 message!
<sneek>civodul, ulfvonbelow says: the only places I can find git-checkout mentioned in the manual are in documenting --with-branch in 'package transformations' and source-file-name in 'invoking guix lint'
***civodul` is now known as civodul
***Furor is now known as Colere
<sneek>Welcome back dsmith-work
<dsmith-work>Morning Greetings, Guilers
<drakonis>where does the compiler define lambda?
<dsmith-work>drakonis: Probably off in module/system/base/ somewhere.
<dsmith-work>drakonis: Guile has a "compiler tower". It might be in more than one place at different levels.
<drakonis>yes.
<drakonis>that might make things a bit harder
<dsmith-work>Intermediate languages and such
<dsmith-work>That's wingo question for sure
<dsmith-work>Thant's a ..
<dsmith-work>Bah
<drakonis>i wanted to bolt kernel into guile
<drakonis>it seems like a real challenge
<dsmith-work>drakonis: https://wingolog.org/archives/2016/02/08/a-lambda-is-not-necessarily-a-closure
<drakonis>though if i were to enable the usage of kernel derived scheme primitives, i'd have to be able to build kernel's primitives without scheme
<dsmith-work>"In summary, a lambda is an abstraction that has many concrete representations. Guile will choose the cheapest representation that it can.'
<drakonis>neat
<dsmith-work>There was someone quite a few years back that put some kind of Scheme into Linux kernel. Maybe 10-15 years ago?
<drakonis>oh no
<drakonis>not that kind
<drakonis> https://web.cs.wpi.edu/~jshutt/kernel.html
<drakonis>i meant this one
<drakonis>the point is to make kernel's primitives and try to optimize them and then make a scheme based on it
<drakonis>kernel has its own improvements on scheme's primitives
<lloda>typed scheme hype
<drakonis>ha
<drakonis>typed scheme you say?
<lloda>oh right this is the ultra dynamic one isn't it
<drakonis>yes
<drakonis>its also the "first class everything" one
<drakonis>among other cool things
<drakonis>i might just make the primitives using the vm
<drakonis>then make everything off that and figure out how to implement the optimization that collapses the primitives into a cached form
<drakonis>lloda: it could probably be used to make a typed scheme?
<drakonis>it seems i have found it
<drakonis>it lives inside tree-il
<drakonis>or not? this is a trek through guile's source
<drakonis>if anything, it's probably hidden inside the vm
<lloda>i think there's a continuum where the compiler is able to infer more and more about your program and eventually you get to add constraints and you get something pretty close to a typed system
*lloda isn't a compiler writer
<drakonis>finally, i have found it at last.
<drakonis>or not???
<drakonis>module/language/tree-il.scm is where the parse tree lives
<drakonis>finally???
<drakonis>not even sure if i have it
<drakonis>really though, where do i find it?
<apteryx>what is the 'enum-set-universe' type useful for, in (rnrs enums)
<apteryx>e.g, I define: (define-enumeration a11y-state? (contrast font keyboard read) a11y-state) Now I want to retrieve the list of accepted symbols, so I try: (enum->list (a11y-state)), but it fails, because (a11y-state) returns an enum-set-universe rather than an enum-set, IIUC.
<apteryx>hmm, looks like a11y-state is an 'enum-set-constructor', which requires the list of the symbols subset to be passed as argument
<apteryx>ah, this works: (enum-set->list (enum-set-universe (a11y-state)))