2020-08-01T00:05:33Z xelxebar joined #scheme 2020-08-01T00:05:38Z drakonis quit (Ping timeout: 246 seconds) 2020-08-01T00:16:05Z zaifir: Well, I think we've taken that one as far as it will go. 2020-08-01T00:19:17Z aeth: most-positive-bignum? 2020-08-01T00:23:51Z zaifir: +inf.0 2020-08-01T00:31:18Z [rg] quit (Quit: Connection closed) 2020-08-01T00:36:27Z evdubs quit (Quit: Leaving) 2020-08-01T00:37:58Z torbo quit (Remote host closed the connection) 2020-08-01T00:38:38Z evdubs joined #scheme 2020-08-01T00:44:44Z terpri_ joined #scheme 2020-08-01T00:45:37Z tristero quit (Ping timeout: 246 seconds) 2020-08-01T00:47:42Z terpri quit (Ping timeout: 244 seconds) 2020-08-01T00:59:43Z drakonis joined #scheme 2020-08-01T01:07:40Z whiteline_ quit (Ping timeout: 246 seconds) 2020-08-01T01:19:23Z terpri_ is now known as terpri 2020-08-01T01:32:43Z lritter joined #scheme 2020-08-01T01:35:48Z bitmapper quit (Ping timeout: 256 seconds) 2020-08-01T01:48:02Z shifty joined #scheme 2020-08-01T02:20:34Z aaaaaa joined #scheme 2020-08-01T02:24:22Z caltelt quit (Ping timeout: 256 seconds) 2020-08-01T02:36:46Z edgar-rft quit (Quit: Leaving) 2020-08-01T02:42:11Z lritter quit (Ping timeout: 240 seconds) 2020-08-01T02:43:03Z lritter joined #scheme 2020-08-01T03:12:12Z zaifir quit (Quit: Eadem mutata resurgo.) 2020-08-01T03:12:39Z lambda-11235 joined #scheme 2020-08-01T03:38:33Z badkins joined #scheme 2020-08-01T03:40:26Z casaca quit (Remote host closed the connection) 2020-08-01T03:43:04Z badkins quit (Ping timeout: 246 seconds) 2020-08-01T04:12:02Z shifty quit (Ping timeout: 256 seconds) 2020-08-01T04:14:57Z casaca joined #scheme 2020-08-01T04:33:29Z drakonis quit (Quit: WeeChat 2.8) 2020-08-01T04:39:17Z drakonis joined #scheme 2020-08-01T04:39:27Z drakonis quit (Client Quit) 2020-08-01T05:00:48Z sinsnare joined #scheme 2020-08-01T05:06:02Z zaifir joined #scheme 2020-08-01T05:19:20Z jgart quit (Quit: Leaving) 2020-08-01T05:20:13Z tomw joined #scheme 2020-08-01T05:24:45Z sinsnare quit (Quit: Connection closed) 2020-08-01T05:35:54Z gravicappa joined #scheme 2020-08-01T05:39:56Z badkins joined #scheme 2020-08-01T05:43:32Z skapata quit (Remote host closed the connection) 2020-08-01T05:44:26Z badkins quit (Ping timeout: 260 seconds) 2020-08-01T06:02:08Z tomw left #scheme 2020-08-01T06:12:18Z iltutmus_ quit (Quit: ZNC 1.7.4 - https://znc.in) 2020-08-01T06:12:26Z iltutmus joined #scheme 2020-08-01T07:20:16Z nerdypep- is now known as nerdypepper 2020-08-01T07:23:56Z lambda-11235 quit (Read error: Connection reset by peer) 2020-08-01T07:29:24Z lambda-11235 joined #scheme 2020-08-01T07:31:05Z whiteline_ joined #scheme 2020-08-01T07:31:53Z oxum joined #scheme 2020-08-01T07:40:38Z badkins joined #scheme 2020-08-01T07:42:40Z lambda-11235 quit (Quit: Bye) 2020-08-01T07:45:16Z badkins quit (Ping timeout: 256 seconds) 2020-08-01T08:04:50Z oxum quit (Remote host closed the connection) 2020-08-01T08:05:24Z oxum joined #scheme 2020-08-01T08:09:47Z oxum quit (Ping timeout: 240 seconds) 2020-08-01T08:37:29Z aaaaaa quit (Quit: leaving) 2020-08-01T08:40:41Z oxum joined #scheme 2020-08-01T08:42:00Z zig: re: movie about little schemer trilogy: lol x) 2020-08-01T08:42:57Z nikita` joined #scheme 2020-08-01T08:47:38Z rgherdt joined #scheme 2020-08-01T08:49:06Z oxum quit (Ping timeout: 265 seconds) 2020-08-01T09:13:58Z remix2000 joined #scheme 2020-08-01T09:15:18Z shifty joined #scheme 2020-08-01T09:20:11Z oxum joined #scheme 2020-08-01T09:32:36Z rbarraud quit (Remote host closed the connection) 2020-08-01T09:36:42Z oxum quit (Remote host closed the connection) 2020-08-01T11:11:43Z edgar-rft joined #scheme 2020-08-01T11:19:47Z zig: heh all test suite about http I found are the same 2020-08-01T11:37:22Z shifty quit (Ping timeout: 256 seconds) 2020-08-01T11:37:56Z shifty joined #scheme 2020-08-01T11:42:04Z badkins joined #scheme 2020-08-01T11:43:35Z ggole joined #scheme 2020-08-01T11:44:32Z lritter quit (Quit: Leaving) 2020-08-01T11:46:25Z badkins quit (Ping timeout: 246 seconds) 2020-08-01T11:54:34Z oxum joined #scheme 2020-08-01T12:06:16Z zig: zaifir: what do you use instead of wayland ? 2020-08-01T12:10:24Z gwatt: presumably Xorg, since that's the only other option 2020-08-01T12:10:45Z zig: yeah, I also considering raw terminals :) 2020-08-01T12:18:36Z z-memory joined #scheme 2020-08-01T12:35:56Z skapata joined #scheme 2020-08-01T13:14:30Z gravicappa quit (Ping timeout: 256 seconds) 2020-08-01T13:29:21Z mdhughes: Just use IRQs to directly access the graphics card. 2020-08-01T13:37:51Z zig: (irq-set! 0 #x00FF00) 2020-08-01T13:43:37Z badkins joined #scheme 2020-08-01T13:47:56Z badkins quit (Ping timeout: 256 seconds) 2020-08-01T13:57:01Z bitmapper joined #scheme 2020-08-01T13:58:15Z phoe left #scheme 2020-08-01T14:15:43Z mdhughes: I wonder how much of Abrash's Black Book still runs… 2020-08-01T14:22:13Z retropikzel joined #scheme 2020-08-01T14:26:45Z terpri_ joined #scheme 2020-08-01T14:29:42Z terpri quit (Ping timeout: 260 seconds) 2020-08-01T14:32:57Z oxum quit (Quit: Leaving...) 2020-08-01T14:38:02Z z-memory quit (Quit: Connection closed for inactivity) 2020-08-01T14:47:19Z caltelt joined #scheme 2020-08-01T15:25:44Z X-Scale` joined #scheme 2020-08-01T15:26:50Z X-Scale quit (Ping timeout: 260 seconds) 2020-08-01T15:26:51Z X-Scale` is now known as X-Scale 2020-08-01T15:42:14Z terpri_ is now known as terpri 2020-08-01T15:44:19Z badkins joined #scheme 2020-08-01T15:49:12Z shifty quit (Ping timeout: 256 seconds) 2020-08-01T15:49:25Z badkins quit (Ping timeout: 264 seconds) 2020-08-01T16:08:13Z acarrico joined #scheme 2020-08-01T16:31:16Z z-memory joined #scheme 2020-08-01T16:41:08Z aeth: zig: Alternatively, maybe we can have a movie where DrScheme (eventually DrRacket, but it's an origin story) joins the Marvel Cinematic Universe 2020-08-01T16:45:35Z zig: that is bigger budget :) 2020-08-01T16:46:45Z zig: +a 2020-08-01T16:48:35Z zig: aeth: what is your OS of choice? 2020-08-01T16:51:58Z aeth: zig: Currently? I use Fedora, and have been doing so for probably 15 years now. It hits the sweet spot where it's mainstream enough to be low-maintenance and even get third party repositories (e.g. Chrome, Adobe Flash (heh), etc.), but not too mainstream to the point where it starts making fashionable-to-hate mistakes (i.e. Ubuntu) 2020-08-01T16:52:35Z aeth: And upgrading versions hasn't really been an issue in 10+ years except for the one where they moved nearly everything to /usr/ 2020-08-01T16:54:49Z aeth: Sometimes packages are missing, though, that are probably on more popular distros. e.g. they added Racket fairly recently, maybe only 5 years ago, because they had issues packaging it before then 2020-08-01T16:59:07Z aeth: zig: As for OS of choice in the long run? We should set up a GoFundMe to buy Symbolics as a community, although idk if most Schemers still see themselves as "Lispers". 2020-08-01T17:00:11Z zig: re lispers, I think I do, why not? 2020-08-01T17:00:29Z aeth: well, e.g. The Little Lisper's rename 2020-08-01T17:00:35Z zig: Symbolics schematics and code is still around? 2020-08-01T17:03:06Z zig: As for the OS of choice in the long run, I am tug between various ideas 1) doing something that people would use today with existing hardware, so the kernel is necessarly linux or bsd 2) what would be the software interface I mean, not even speaking of Desktop Environment, in particular, what would happen to the file system. 2020-08-01T17:03:59Z zig: we are deep down attached to the FS hierarchy e.g. the library system, maybe there is another way, a way I would like to explore as part of arew 2020-08-01T17:04:34Z zig: now that I wrote that, maybe the library system is not so much related to the FS in the standard, but only in existing implementations. 2020-08-01T17:05:09Z aeth: zig: Symbolics's Genera would basically be useless in 2020... but as a brand, it would be great to have Symbolics GeneraL, Genera-on-Linux, sort of like Android, but with Lisp instead of Java. 2020-08-01T17:11:40Z zaifir: If the CLers bought Symbolics and the Schemers bought/resurrected LMI... 2020-08-01T17:12:27Z zaifir: The unproductive Lisp machine wars of the 80s could begin all over again. 2020-08-01T17:12:41Z zaifir: The first time as history, the second as farce. 2020-08-01T17:15:04Z zig: farce? why is that? 2020-08-01T17:19:09Z zig: aeth: would you rethink the file system thing? 2020-08-01T17:24:52Z trystero joined #scheme 2020-08-01T17:25:25Z zaifir: zig: https://en.wikipedia.org/wiki/The_Eighteenth_Brumaire_of_Louis_Napoleon#First_as_tragedy,_then_as_farce 2020-08-01T17:27:25Z zig: TIL 2020-08-01T17:28:36Z zaifir: And, of course, I misquoted it. 2020-08-01T17:28:57Z zaifir: The revival of the Lisp machine wars would be a farce, because there'd be so little at stake. 2020-08-01T17:29:31Z zig: You mean that it will not provide enough values? 2020-08-01T17:29:46Z zaifir: It would provide all the values. 2020-08-01T17:30:04Z zaifir: As Lisp programmers, we know the value of everything. 2020-08-01T17:31:08Z zaifir: But I fear that a mainstream Lisp machine is a far more remote goal now than it was in the 80s. 2020-08-01T17:31:50Z zig: maybe we do not know what great things it will deliver because we did not try. 2020-08-01T17:33:24Z hendursaga joined #scheme 2020-08-01T17:34:49Z zaifir: zig: Agreed. I think it's not possible to realize the "great things" that a Lisp environment provides in a way that conforms to currently-popular approaches to computing. 2020-08-01T17:35:34Z zaifir: zig: The whole your-computer-is-an-appliance-with-two-buttons UI/UX philosophy is completely at odds with programmability. 2020-08-01T17:36:46Z zaifir: So a fully-programmable OS as we, I think, understand it, would be a subversive project. :) 2020-08-01T17:37:29Z zig: anything subversive is not worth trying... 2020-08-01T17:38:50Z zaifir: zig: What makes you say that? 2020-08-01T17:40:09Z zig: Experience. It is very difficult. 2020-08-01T17:41:48Z zaifir: Projects can, in themselves, be subversive. Starting an effort to make them mainstream can be really painful, though, I imagine. 2020-08-01T17:44:13Z zaifir: I suppose, if one writes enough software at odds with the mainstream, someday Eric Schmidt visits you and asks if there's anything the great Googler can do for you. And then you get the satisfaction of asking him to step out of your sunlight. 2020-08-01T17:45:11Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-01T17:48:43Z drakonis joined #scheme 2020-08-01T17:53:19Z remix2000 joined #scheme 2020-08-01T18:04:59Z zig: It seems like a good plan. 2020-08-01T18:09:27Z aeth: zig: Nope, no interest in rethinking how the OS works at a low level, mainly because it would be incompatible with all existing software's assumptions. Nobody uses an OS that can't run their software, except perhaps if you make it a niche "micro-OS" to serve as a VM guest for hosting server software in the cloud. 2020-08-01T18:10:20Z aeth: zig: A LispOS on the Linux kernel would be the only LispOS that (1) would have all the drivers for running on real hardware and (2) would run software that people want like Steam and Firefox 2020-08-01T18:12:05Z zaifir: Doesn't Steam assume a GNU userspace? 2020-08-01T18:12:27Z aeth: zaifir: Depends on what you mean by "OS". If you mean full Lisp stack all the way down to the kernel (and, if running on a lispm, even below that), then, yeah, the ship has sailed and we're too late. If you mean something like Android, which is basically a Java OS running on top of the Linux kernel (which could even be replaced with e.g. Fuchsia one day in the distant future), then it's definitely possible 2020-08-01T18:13:07Z zaifir: Yeah, that sounds very plausible. 2020-08-01T18:14:01Z aeth: zaifir: As for GNU, the only GNU required by a Linux environment is afaik the GCC toolchain required to build the Linux kernel (at least until the LLVM version of the Linux kernel is upstreamed, if ever). I wouldn't be surprised if Steam requires GNU, but Steam also ships its own stable runtime for the applications themselves, so... it probably wouldn't be that hard to isolate the GNU to just Steam if that's what you want. 2020-08-01T18:14:11Z aeth: Ironic, using GNU for proprietary software. 2020-08-01T18:14:42Z zaifir: Whether or not it would provide a substantially different environment than J. Random Distro, I don't know. I'm not such a Lisp partisan as to think that cat(1) written in Lisp is better than one written in C. 2020-08-01T18:17:07Z aeth: zaifir: Start top-down, not bottom-up. Don't think about replacing systemd then bash/coreutils/etc., and so on. Think about replacing KDE/GNOME, apt-get/dnf/pacman/etc., and so on. 2020-08-01T18:17:29Z zaifir: "Think about replacing KDE/GNOME..." Who needs those? ;) 2020-08-01T18:17:30Z aeth: Really, the thing that distinguishes a distro is the last part I listed, the package manager 2020-08-01T18:18:14Z zaifir: Sure. 2020-08-01T18:18:23Z zig: zaifir: what do you use wm et al.? 2020-08-01T18:18:58Z zaifir: zig: Well, my main use for a wm is to move terminals around, so dwm or cwm. 2020-08-01T18:19:07Z zig: seriously? 2020-08-01T18:19:22Z zaifir: Of course. 2020-08-01T18:19:41Z zig: I was into dwm at some point, I even created the initial package for guix. 2020-08-01T18:20:10Z zaifir: It's pretty hard to beat at, what, 2000 lines of C? 2020-08-01T18:20:30Z ggoes quit (Quit: WeeChat 2.3) 2020-08-01T18:20:50Z zaifir: Although the OpenBSD folks have done a fantastic job on cwm. https://en.wikipedia.org/wiki/Cwm_(window_manager) 2020-08-01T18:21:02Z zig: aeth: I agree with the top-down approach, that said, it will need bright new ideas to be adopted. 2020-08-01T18:21:31Z aeth: I use stumpwm on my desktop, but on my laptop I use KDE because it'll probably handle things like suspend, WiFi, etc., properly. You know, stuff that are only an issue on laptops. 2020-08-01T18:21:37Z zaifir: Ah, stump. 2020-08-01T18:22:07Z aeth: I also sometimes use KDE on my desktop, when something breaks in stumpwm, usually when it's multiple-window-oriented, like GIMP before the big change a few years ago. 2020-08-01T18:22:30Z aeth: stumpwm still doesn't handle free floating subwindows properly, last I checked. 2020-08-01T18:23:09Z zaifir: I was really interested in stumpwm for a bit, but I think now that a window manager isn't a very good place for runtime programmability. 2020-08-01T18:23:13Z zig: I use wayland and sway to have a transparent terminal :> 2020-08-01T18:23:39Z zig: stylish minimalism. 2020-08-01T18:23:51Z aeth: zaifir: I use stumpwm for the Emacs-like keys... although the default of C-t is absolutely awful since that interferes with new tabs in Firefox. I rebound it to a combination using the meta key, which should (in theory) always be reserved to the window manager. 2020-08-01T18:24:04Z aeth: s/meta key/super key/ 2020-08-01T18:24:04Z zaifir: Bogus minimalism, I think. There's a huge messy codebase behind that "minimal" look. 2020-08-01T18:24:15Z zig working on it :) 2020-08-01T18:25:08Z zig: I looked at how to replace xorg or wayland it is far from easy. 2020-08-01T18:25:13Z zaifir: aeth: Yeah, it's surprising that most wms default to using meta. Super is perfect for that. 2020-08-01T18:25:19Z ggoes joined #scheme 2020-08-01T18:25:41Z zig: at the same time, I was saying the same with HTTP. Actually, the basics of HTTP are easy. 2020-08-01T18:26:05Z zaifir: zig: I think it's silly that when people asked the Wayland creators what was wrong with X, they said "it looks old". 2020-08-01T18:26:17Z zig: erf! 2020-08-01T18:26:31Z zaifir: (There are *many* things wrong with X, but that was astonishingly superficial) 2020-08-01T18:28:58Z zaifir: The X protocol is actually elegant, assuming a world in which the windowing system does the drawing and not the client. Which is, unfortunately, not the current mainstream world. 2020-08-01T18:31:02Z ineiros quit (Ping timeout: 265 seconds) 2020-08-01T18:35:52Z aeth: zaifir: I guess that they can't assume that an arbitrary keyboard will have the super/windows key, although pretty much any non-Mac keyboard in the last 20+ years will have it and I bet MacOS has some key that's treated like the super key. 2020-08-01T18:36:09Z aeth: Plus, if you're installing a tiling WM, it's probably not the only one you have, so you can always mess with the configuration. 2020-08-01T18:37:00Z drakonis quit (Quit: WeeChat 2.8) 2020-08-01T18:37:11Z aeth: And anything that's not the WM using the super key should be treated as a bug, unless the user bound the keys 2020-08-01T18:39:05Z Fare quit (Ping timeout: 244 seconds) 2020-08-01T18:39:48Z drakonis joined #scheme 2020-08-01T18:45:08Z drakonis quit (Quit: WeeChat 2.8) 2020-08-01T18:47:59Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-01T18:56:55Z shifty joined #scheme 2020-08-01T18:58:05Z tolja joined #scheme 2020-08-01T18:59:01Z gravicappa joined #scheme 2020-08-01T18:59:56Z drakonis joined #scheme 2020-08-01T19:23:20Z zig: fwiw, the following answer provides a lead on how to display something without wayland or xorg 2020-08-01T19:23:22Z zig: https://stackoverflow.com/a/58176272/140837 2020-08-01T19:29:24Z zig: (but still using the graphic stack of the OS so that it is portable) 2020-08-01T19:30:38Z badkins joined #scheme 2020-08-01T19:32:15Z remix2000 joined #scheme 2020-08-01T19:33:30Z zig: !!1 2020-08-01T19:43:08Z bitwiz: zig: Here is some work from one of my past lives doing something very similar: https://git.bitwiz.me.uk/glamo-dri-tests.git/tree/ 2020-08-01T19:43:46Z bitwiz: Note that you really don't get much more than a framebuffer pointer from the kernel via the graphics stack 2020-08-01T19:45:09Z zig: thanks i made a backup. 2020-08-01T19:45:20Z zig: bitwiz: what was the goal? 2020-08-01T19:46:37Z bitwiz: Trying to write an accelerated (2D and 3D) graphics driver for the GPU in the Openmoko phone 2020-08-01T19:47:09Z bitwiz: The repo I posted is some simple tests to do things like test throughput by doing things like filling the screen with colours 2020-08-01T19:47:52Z zig: what format are the pixels? 2020-08-01T19:54:33Z bitwiz: In that case, RGB565 if I remember correctly. But in general, It Depends 2020-08-01T19:57:51Z bitwiz: I can highly recommend against trying to do graphics by poking individual registers on a GPU, but writing directly to a framebuffer is fine (if slow) 2020-08-01T20:01:49Z whiteline_ quit (Remote host closed the connection) 2020-08-01T20:02:16Z whiteline_ joined #scheme 2020-08-01T20:03:25Z shifty quit (Ping timeout: 240 seconds) 2020-08-01T20:04:08Z shifty joined #scheme 2020-08-01T20:26:11Z bitwiz: Everything in my repo is 100% specific to an exact GPU which you will hardly be able to find any more. What you want will be something similar to my gdrm-kms-addfb.c, but that code is >10 years old now and the API will have changed somewhat 2020-08-01T20:28:29Z bitwiz: It can actually be easier to get access to a framebuffer on 100% bare metal. Here is me trying (though, failing) to do it on a Raspberry Pi 3 in assembly language: https://git.bitwiz.me.uk/baremetal.git/tree/src/framebuffer.s 2020-08-01T20:30:28Z wasamasa: the mailbox stuff on the rpi cracks me up 2020-08-01T20:30:33Z wasamasa: how does this nonsense even work 2020-08-01T21:00:57Z z-memory quit (Quit: Connection closed for inactivity) 2020-08-01T21:06:30Z ggole quit (Quit: Leaving) 2020-08-01T21:07:45Z nikita` quit (Quit: leaving) 2020-08-01T21:20:11Z shifty quit (Ping timeout: 240 seconds) 2020-08-01T21:20:51Z shifty joined #scheme 2020-08-01T21:30:55Z Fare joined #scheme 2020-08-01T21:52:16Z gravicappa quit (Ping timeout: 246 seconds) 2020-08-01T22:17:45Z badkins quit (Remote host closed the connection) 2020-08-01T22:18:23Z badkins joined #scheme 2020-08-01T22:22:14Z badkins quit (Remote host closed the connection) 2020-08-01T22:22:24Z badkins_ joined #scheme 2020-08-01T22:37:12Z notzmv quit (Ping timeout: 256 seconds) 2020-08-01T22:51:05Z sp1ff quit (Read error: Connection reset by peer) 2020-08-01T22:52:32Z sp1ff joined #scheme 2020-08-01T23:23:58Z notzmv joined #scheme 2020-08-01T23:36:57Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-01T23:38:27Z Riastradh: wasamasa: What do you mean? 2020-08-01T23:45:23Z madage quit (Ping timeout: 240 seconds) 2020-08-01T23:45:28Z Fare quit (Ping timeout: 244 seconds) 2020-08-01T23:52:03Z rgherdt quit (Ping timeout: 272 seconds) 2020-08-01T23:55:25Z brown121407 quit (Remote host closed the connection) 2020-08-01T23:55:25Z brettgilio quit (Remote host closed the connection) 2020-08-01T23:57:42Z brown121407 joined #scheme 2020-08-01T23:58:42Z brettgilio joined #scheme 2020-08-02T00:20:59Z trystero quit (Ping timeout: 240 seconds) 2020-08-02T00:53:43Z efm joined #scheme 2020-08-02T01:08:58Z Riastradh: jcowan: zig: The basic promise operations are sometimes a pretty serious bottleneck. I made stream operations in MIT Scheme about 7x faster a year or two ago with some modest changes to the promise operations. 2020-08-02T01:10:23Z Riastradh: https://git.savannah.gnu.org/cgit/mit-scheme.git/tree/src/runtime/boot.scm#n249 2020-08-02T01:12:19Z Riastradh: I think the big impact was from this: https://git.savannah.gnu.org/cgit/mit-scheme.git/commit/src/runtime/boot.scm?id=4e246161076d4a2e3f9ff5f9e72dcca30a8013e5 2020-08-02T01:12:19Z rudybot: https://teensy.info/Bmjf9UkFLe 2020-08-02T01:13:38Z Riastradh: (But some other things -- like open-coding the accessors, -- made a substantial difference too.) 2020-08-02T01:13:38Z rudybot: https://teensy.info/KzFzAcMZR3 2020-08-02T01:15:33Z sp1ff quit (Remote host closed the connection) 2020-08-02T01:15:50Z sp1ff` joined #scheme 2020-08-02T01:16:40Z torbo joined #scheme 2020-08-02T01:52:54Z skapata quit (Remote host closed the connection) 2020-08-02T01:54:53Z skapata joined #scheme 2020-08-02T01:56:22Z bitmapper quit (Ping timeout: 260 seconds) 2020-08-02T02:05:52Z badkins_ quit (Remote host closed the connection) 2020-08-02T02:07:34Z badkins joined #scheme 2020-08-02T02:11:47Z badkins quit (Ping timeout: 240 seconds) 2020-08-02T02:15:28Z Fare joined #scheme 2020-08-02T02:23:18Z caltelt quit (Ping timeout: 256 seconds) 2020-08-02T02:40:08Z shifty quit (Ping timeout: 256 seconds) 2020-08-02T02:51:38Z zaifir quit (Quit: Eadem mutata resurgo.) 2020-08-02T03:22:01Z retropikzel_ joined #scheme 2020-08-02T03:23:05Z tbisker8 joined #scheme 2020-08-02T03:23:23Z titanbiscuit quit (Ping timeout: 240 seconds) 2020-08-02T03:23:37Z retropikzel quit (Ping timeout: 264 seconds) 2020-08-02T03:25:55Z retropikzel_ is now known as retropikzel 2020-08-02T03:42:27Z badkins joined #scheme 2020-08-02T04:34:21Z skapata quit (Remote host closed the connection) 2020-08-02T04:42:01Z badkins quit (Remote host closed the connection) 2020-08-02T04:42:54Z badkins joined #scheme 2020-08-02T04:47:23Z badkins quit (Ping timeout: 240 seconds) 2020-08-02T04:48:00Z lritter joined #scheme 2020-08-02T05:05:27Z torbo quit (Remote host closed the connection) 2020-08-02T05:10:14Z terpri_ joined #scheme 2020-08-02T05:13:27Z terpri quit (Ping timeout: 260 seconds) 2020-08-02T05:13:50Z gravicappa joined #scheme 2020-08-02T05:17:21Z terpri_ quit (Remote host closed the connection) 2020-08-02T05:19:52Z terpri_ joined #scheme 2020-08-02T06:18:23Z zaifir joined #scheme 2020-08-02T06:27:37Z nly quit (Remote host closed the connection) 2020-08-02T06:36:44Z rgherdt joined #scheme 2020-08-02T06:49:40Z [rg] joined #scheme 2020-08-02T07:02:26Z pounce quit (Ping timeout: 256 seconds) 2020-08-02T07:17:02Z badkins joined #scheme 2020-08-02T07:31:49Z edgar-rft quit (Quit: Leaving) 2020-08-02T07:34:03Z edgar-rft joined #scheme 2020-08-02T07:39:37Z pounce joined #scheme 2020-08-02T07:43:54Z Fare quit (Ping timeout: 244 seconds) 2020-08-02T07:46:57Z remix2000 joined #scheme 2020-08-02T07:55:25Z drakonis quit (Quit: WeeChat 2.8) 2020-08-02T08:03:45Z [rg] quit (Quit: Connection closed) 2020-08-02T08:05:37Z fadein quit (Ping timeout: 264 seconds) 2020-08-02T08:16:57Z edgar-rft quit (Remote host closed the connection) 2020-08-02T08:22:58Z ggole joined #scheme 2020-08-02T08:58:56Z bitwiz: Riastradh: (r.e. wasamasa comment): the "mailbox stuff" is one of the low-level hoops you have to jump through to get direct access to screen memory on a Raspberry Pi 2020-08-02T09:02:07Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-02T09:12:32Z badkins quit (Remote host closed the connection) 2020-08-02T09:14:50Z badkins joined #scheme 2020-08-02T09:15:08Z remix2000 joined #scheme 2020-08-02T09:18:00Z shifty joined #scheme 2020-08-02T09:19:38Z badkins quit (Ping timeout: 256 seconds) 2020-08-02T09:36:39Z wasamasa: Riastradh: before studying the rpi and interim running on it, I've always thought of mailboxes as high-level abstractions used by erlang, scheme and so on 2020-08-02T09:37:27Z wasamasa: Riastradh: the rpi proved me wrong, you can use it to gatekeep people with weak assembler skill from ever doing graphics stuff with it :D 2020-08-02T09:59:45Z xelxebar_ joined #scheme 2020-08-02T10:00:03Z xelxebar quit (Ping timeout: 240 seconds) 2020-08-02T10:06:50Z mononote quit (Ping timeout: 260 seconds) 2020-08-02T10:07:28Z mononote joined #scheme 2020-08-02T10:37:16Z madage joined #scheme 2020-08-02T11:03:43Z madage quit (Ping timeout: 240 seconds) 2020-08-02T11:08:05Z madage joined #scheme 2020-08-02T11:16:11Z badkins joined #scheme 2020-08-02T11:20:43Z badkins quit (Ping timeout: 265 seconds) 2020-08-02T11:41:46Z retropikzel quit (Quit: retropikzel) 2020-08-02T11:47:08Z mononote quit (Ping timeout: 256 seconds) 2020-08-02T11:53:39Z Fare joined #scheme 2020-08-02T12:10:05Z lisbeths joined #scheme 2020-08-02T12:12:38Z lisbeths: How do I make a stateless tick tack toe board? 2020-08-02T12:13:00Z zig: stateless? 2020-08-02T12:13:05Z zig: you mean immutable? 2020-08-02T12:13:45Z zig: lisbeths: ? 2020-08-02T12:13:55Z lisbeths: yes 2020-08-02T12:14:11Z lisbeths: assume my pieces are each typed as a single character 2020-08-02T12:14:24Z wasamasa: take one board, map over it into a new board 2020-08-02T12:14:41Z lisbeths: but I mean how can I save the state of the new board? 2020-08-02T12:14:46Z lisbeths: do I tack it onto the end of a list? 2020-08-02T12:15:20Z lisbeths: do I make a (move-piece) function where each time I make a change it defines a new variable? 2020-08-02T12:15:49Z wasamasa: it depends on how exactly that game of yours works 2020-08-02T12:16:06Z zig: what about: create a mutable version of your game, then re-ask the question with some code? 2020-08-02T12:16:15Z wasamasa: for example if you have a game loop, a natural approach is to recur into a new loop iteration with the new board state 2020-08-02T12:16:36Z lisbeths: yes I guess this is where I get confused is I want to be able to break out of hte loop 2020-08-02T12:16:46Z wasamasa: that is handled above that level 2020-08-02T12:17:06Z wasamasa: the board logic doesn't need to concern itself with that 2020-08-02T12:17:12Z lisbeths: I imagine going like (define board-3 (function "move" board-2)) 2020-08-02T12:17:34Z lisbeths: but this manual defining of board-n where n is the number of move is like sheep and not cattle 2020-08-02T12:17:42Z wasamasa: you could for example use call/cc to allow quitting prematurely from the loop 2020-08-02T12:17:49Z wasamasa: or check before processing an event whether it signals a game quit 2020-08-02T12:18:24Z wasamasa: see here for a SDL example: https://depp.brause.cc/kiwi/examples/hello-world/hello-world.scm 2020-08-02T12:18:53Z lisbeths: what I mean is that I can make a board such as it recursively asks the user to make a move until the game is done, then exits into the outer interpreter, but to me it seems a higher category to be able to return to the outer interpreter after every move 2020-08-02T12:18:57Z wasamasa: (let loop () (when (not (sdl2:quit-requested?) ... (loop)) 2020-08-02T12:19:25Z wasamasa: this is stateful of course because sdl2, but can be adjusted not to be 2020-08-02T12:20:03Z madage quit (Ping timeout: 240 seconds) 2020-08-02T12:20:28Z lisbeths: I can make that stateless by saying (define moves (recursively 'get-player-moves)) and then whether they quit or not all of their moves are recorded and then used to draw the final board 2020-08-02T12:20:33Z wasamasa: a more stateless one: https://depp.brause.cc/programming-in-scheme/circle-squared/interactive.scm 2020-08-02T12:20:33Z mdhughes: Right, game loop reads user input, updates world state, renders world state, repeat. 2020-08-02T12:20:55Z wasamasa: where it uses the read in event in the loop 2020-08-02T12:21:08Z mdhughes: You don't need to remember the past moves, update just takes inputs and world state, and returns a new world state. 2020-08-02T12:21:35Z lisbeths: sure I can make a func which takes world state and returns world state but I feel like saving that return world state into an array 2020-08-02T12:21:50Z lisbeths: and from what I gather that involves redefining the array, so maybe that isn't kosher within purely functional programming 2020-08-02T12:22:25Z lisbeths: is there no growable datastructure? 2020-08-02T12:22:33Z wasamasa: redefining is not the problem 2020-08-02T12:22:40Z wasamasa: that's what the loop does 2020-08-02T12:22:51Z wasamasa: the problem is mutating the value of an array 2020-08-02T12:22:54Z wasamasa: that wouldn't be stateless 2020-08-02T12:22:54Z lisbeths: perhaps I need some like "beginner" coding problems like fizzbuzz, tic tac toe, chess, etc 2020-08-02T12:22:59Z mdhughes: (set! oldworlds (cons newworld oldworlds)) 2020-08-02T12:23:28Z wasamasa: hence why we bother with writing mapping and folding procedures that create new lists and arrays 2020-08-02T12:23:48Z mdhughes: But no reason to keep the old world state, just toss it. It's a waste of memory in bigger games! 2020-08-02T12:24:00Z wasamasa: yeah, I'd only keep it for fancy things like time-travel 2020-08-02T12:24:08Z lisbeths: the question has to do with a recursive function where each time I call this function it defines a new thing 2020-08-02T12:24:35Z lisbeths: so that rather than discard all of the state transitions I can see them all as they have been computed sequentially 2020-08-02T12:24:45Z mdhughes: It's hard to do much in a game pure functional, you're going to need state somewhere and it's easier to save it than recompute it. But the lower-level parts can be pure functional, which makes it easier to design & test. 2020-08-02T12:25:19Z madage joined #scheme 2020-08-02T12:25:49Z lisbeths: so lets say I define an array with five billion pieces of state in array, and I redefine that array with 1 piece changed, is scheme going to have to write over that entire array or just that index? 2020-08-02T12:26:20Z wasamasa: you're skipping over how that one piece changed 2020-08-02T12:26:45Z wasamasa: if it changed by setting the variable to a new array with a different item, sure, you have to walk over the whole thing 2020-08-02T12:26:57Z mdhughes: Depends on "array". If it's a mutable vector, nope. If it's a list, everything after the changed element will get reused but the fore part will be changed. 2020-08-02T12:27:07Z wasamasa: if it changed by using the mutating procedure array-set!, then it's not stateless and you're having the same array 2020-08-02T12:27:15Z wasamasa: binding it to a new name doesn't change anything about that 2020-08-02T12:32:12Z retropikzel joined #scheme 2020-08-02T12:33:18Z retropikzel quit (Remote host closed the connection) 2020-08-02T12:45:39Z mononote joined #scheme 2020-08-02T12:56:32Z awth13 joined #scheme 2020-08-02T12:57:11Z awth13 quit (Client Quit) 2020-08-02T13:14:47Z shifty quit (Ping timeout: 265 seconds) 2020-08-02T13:16:58Z badkins joined #scheme 2020-08-02T13:18:52Z zig: the only thing that comes to mind to represent an immutable board is finger trees... 2020-08-02T13:19:08Z zig: but there is no srfi for it as of yet 2020-08-02T13:19:25Z zig: or something that is an immutable vector. 2020-08-02T13:19:39Z zig: or immutable vector with structural sharing. 2020-08-02T13:20:12Z zig: lisbeths: did you find a solution to you problem? 2020-08-02T13:20:24Z zig: lisbeths: did you find a solution to your problem? 2020-08-02T13:21:23Z badkins quit (Ping timeout: 240 seconds) 2020-08-02T13:24:26Z lisbeths: well uh 2020-08-02T13:24:46Z lisbeths: wasamasa asked me to try to implement it then show my implementation to ask for improvements so I am trying my best to implement it immutably right now 2020-08-02T13:25:08Z lisbeths: zig: currently I am trying to write a function which replaces a piece of data in the nth index of a list 2020-08-02T13:25:23Z lisbeths: not by mutating it but by returning a list which contains the new data instead of the old 2020-08-02T13:30:38Z zig: good :) 2020-08-02T13:31:56Z wasamasa: for the record, clojure pretty much forces you to program in this style 2020-08-02T13:32:30Z wasamasa: you can circumvent it by either using appropriate data structures or java :D 2020-08-02T13:37:36Z badkins joined #scheme 2020-08-02T14:00:25Z dTal: Why is 'begin' so named? It seems counterintuitive. Shouldn't it be called something like "sequence" or "do"? 2020-08-02T14:07:55Z lisbeths: uh If you mean the begin loop then that predates scheme 2020-08-02T14:08:05Z lisbeths: some older programming language I forget which has a begin-until loop 2020-08-02T14:13:03Z lisbeths: I think the reason do loop came before while loop is that a while loop required 1 extra conditional jump in asm than a do loop so do loop is more intuitive in asm 2020-08-02T14:16:00Z erkin: Maclisp had `progn' so `begin' was probably borrowed later on as a clearer term. 2020-08-02T14:18:47Z mdhughes: We should have begi1 and begi2 to complement begin, just like LISP. 2020-08-02T14:19:16Z wasamasa: begin0 is a thing 2020-08-02T14:19:25Z Riastradh: dTal: Algol code blocks were delimited by begin/end. 2020-08-02T14:19:33Z erkin: It seems the original Scheme in the AI memo also had `progn', as well as a `block', the latter of which also appears in the revised report. 2020-08-02T14:20:47Z Riastradh: lisbeths: You might like Chris Okasaki's book _Purely Functional Data Structures_. 2020-08-02T14:21:15Z erkin: A ha, revised revised report defines `begin' as well as a synonym `sequence'. 2020-08-02T14:21:24Z dTal: Riastradh: Ah, I guess that makes sense in historical context. 2020-08-02T14:22:12Z Riastradh: Early Scheme was very much inspired by Algol. Even the name of the reports describing Scheme, `The [Revised^n] Report on the Algorithmic Language Scheme', were a riff on the reports describing Algol. 2020-08-02T14:23:31Z erkin: Aren't all later RnRSes dedicated to the memory of Algol? 2020-08-02T14:24:25Z tbisker8 quit (Ping timeout: 240 seconds) 2020-08-02T14:24:47Z lisbeths: well so far what I have written is immutable. Since I am trying to edit from the middle of a list, this is a strong sign that my code needs to be refactored. however since I am having such trouble writing a function that edits from the middle of a list immutably, I care to finish writing what I am writing before I show it off for refactoring. 2020-08-02T14:25:49Z wasamasa: lol 2020-08-02T14:25:53Z wasamasa: do you even named let 2020-08-02T14:26:10Z titanbiscuit joined #scheme 2020-08-02T14:26:18Z wasamasa: no need to make a mountain out of a mole hill 2020-08-02T14:34:04Z lisbeths: if I were programming it mutably I would already be done :p 2020-08-02T14:34:58Z wasamasa: "If I can't do this, it cannot be done" 2020-08-02T14:35:06Z wasamasa: bad yard stick there 2020-08-02T14:37:02Z daviid quit (Ping timeout: 260 seconds) 2020-08-02T14:42:00Z edgar-rft joined #scheme 2020-08-02T14:42:40Z wasamasa: http://ix.io/2sY1 2020-08-02T14:48:42Z lritter quit (Quit: Leaving) 2020-08-02T14:48:56Z lisbeths: more like "fail faster" 2020-08-02T14:56:44Z lisbeths: one solution is to copy someone elses algorithm but a higher category of thinking is to figure out why my thinking is not currently able to refactor the algorithm I am writing. 2020-08-02T15:01:01Z mdhughes: One option, fairly computationally expensive, is to map a function over the world state, that computes each cell's new state. That's practical for cellular automata like Conway's Game of Life… 2020-08-02T15:06:26Z skapata joined #scheme 2020-08-02T15:07:33Z bitmapper joined #scheme 2020-08-02T15:10:11Z lisbeths: I have implmemented nth-cdr which does cdr n times and I have implemented n, and now I am trying to implement take, because take is not part of my chicken scheme 2020-08-02T15:11:28Z wasamasa: you seem to be blissfully unaware of srfi-1 2020-08-02T15:11:52Z lisbeths: yes, yes I am 2020-08-02T15:12:00Z lisbeths: I normally just do my stuff in c bash or javascript 2020-08-02T15:14:33Z lisbeths: what directory do I need to download srfi-1 into to include it? 2020-08-02T15:14:42Z wasamasa: chicken-install srfi-1 2020-08-02T15:16:41Z lisbeths: unbound variable chicken-install 2020-08-02T15:16:55Z wasamasa: I have no words 2020-08-02T15:16:57Z lisbeths: your move big brain man 2020-08-02T15:17:14Z wasamasa: I mean, come on, you've boasted writing forth in bash before 2020-08-02T15:17:15Z lisbeths: s/man/person 2020-08-02T15:17:25Z wasamasa: surely you can figure out what's lisp and what's a shell command 2020-08-02T15:17:25Z lisbeths: yeah forth makes it obvious how to include from a file 2020-08-02T15:17:33Z lisbeths: ah 2020-08-02T15:22:50Z lisbeths: so I have installed sfri-1 via "sudo chicken-install sfri-1". When I go to use the take function it is undefined. So I use (require-extension sfri-1), and it says it is an undefined module 2020-08-02T15:23:31Z wasamasa: are you using version 5? 2020-08-02T15:23:49Z wasamasa: or are you weak at typing? 2020-08-02T15:23:52Z wasamasa: or both? 2020-08-02T15:25:16Z lisbeths: I am bad at typing 2020-08-02T15:25:23Z stepnem quit (Ping timeout: 240 seconds) 2020-08-02T15:26:25Z Riastradh: lisbeths: FYI, it can be helpful to record a transcript of exactly what you typed and exactly what the machine wrote back, e.g. using the script command. 2020-08-02T15:26:31Z mdhughes: (import srfi-1) will work in CHICKEN 5. 2020-08-02T15:27:09Z Riastradh: (that way, for example, nobody has to guess whether `sfri' was a typo in your IRC message, or was what you actually typed in your commands) 2020-08-02T15:27:10Z mdhughes: None of this is documented *well*, but it is somewhat documented on the CHICKEN site. 2020-08-02T15:27:23Z madage quit (Ping timeout: 240 seconds) 2020-08-02T15:27:48Z badkins quit (Remote host closed the connection) 2020-08-02T15:28:59Z madage joined #scheme 2020-08-02T15:29:22Z lisbeths: every language has a different means of recording what it spews out into my terminal 2020-08-02T15:29:38Z wasamasa: lol 2020-08-02T15:29:51Z Riastradh: lisbeths: script will record everything, including your shell and any Chicken process you run under the shell and so on. 2020-08-02T15:30:06Z wasamasa: that's a funny thing to say given the heroic effort in conforming to telegraph era protocols 2020-08-02T15:30:23Z stepnem joined #scheme 2020-08-02T15:30:53Z lisbeths: everything is portable except my motivation towards unportable systems 2020-08-02T15:30:53Z wasamasa: even copy-pasting the shell output into a pastebin is usually good enough 2020-08-02T15:31:15Z lisbeths: yes I shall consider automating that in emacs 2020-08-02T15:31:16Z wasamasa: with script you have one more file to pastebin 2020-08-02T15:33:44Z trystero joined #scheme 2020-08-02T15:34:11Z zig: it is "srfi" like "surf the internet". 2020-08-02T15:39:27Z wasamasa: or surfee 2020-08-02T15:45:50Z zaifir: lisbeths: SRFIs are portable, as are many other Scheme libraries, with some adaptation. The ways of installing them vary, however. 2020-08-02T15:47:00Z zaifir: lisbeths: With CHICKEN, I find it easiest to install it to $HOME, which eliminates the need for sudo ugliness. 2020-08-02T15:55:05Z shifty joined #scheme 2020-08-02T16:03:46Z fadein joined #scheme 2020-08-02T16:19:00Z drakonis joined #scheme 2020-08-02T16:27:02Z drakonis quit (Quit: WeeChat 2.8) 2020-08-02T16:32:39Z lisbeths: okay so back to my original query: I am learning immutable programming and I am having trouble figuring out how to represnt objects which I would normally write mutably. One object which I am encoding in this example is a tic tac toe board: https://pastebin.com/raw/GZa7nKpn I am having to do some very inefficient operations to transform this. 2020-08-02T16:32:39Z lisbeths: 2020-08-02T16:43:00Z Riastradh: lisbeths: FYI: what you called nth-cdr is called drop in SRFI 1. 2020-08-02T16:43:16Z Riastradh: Also FYI: eq? is not a reliable way to compare numbers; use = instead. 2020-08-02T16:44:11Z Riastradh: But anyway, you have the right starting idea for how to update state with immutable data structures. Chris Okasaki's book extends this idea to efficient algorithms for many different data structures with different kinds of update operations. 2020-08-02T16:46:02Z Riastradh: (that said, can't do much better for a very small fixed-size data structure like this) 2020-08-02T16:47:00Z Fare: semi-relatedly, I just used a zipper to speed up 5x batch updates on an immutable data structure 2020-08-02T16:47:17Z Riastradh: (...at least, without observing anything about the elements; in this case, you could certainly use bitwise operations on an integer or a pair of integers.) 2020-08-02T16:47:18Z Fare: batch updates are O(1) 2020-08-02T16:48:42Z zaifir: lisbeths: Yes, representing a board with lists will be inefficient. But when it's a 3x3 board, who cares? 2020-08-02T16:49:37Z zaifir: lisbeths: Also, nth is called list-ref. 2020-08-02T16:50:48Z zaifir: lisbeths: print-board is essentially an "unrolled" fold. You can write it more concisely. 2020-08-02T16:51:41Z zaifir: lisbeths: You may want to just browse through SRFI 1 and think about how some of the forms can be used to simplify your code. 2020-08-02T16:51:52Z wasamasa: you don't need to string-append things before printing them since print accepts non-strings 2020-08-02T16:52:38Z zaifir: You don't even need print (which is non-standard, anyway). Just display. 2020-08-02T16:53:03Z wasamasa: right, all print does is display followed by newline 2020-08-02T16:53:11Z wasamasa: so you'd end up with an extra newline 2020-08-02T16:55:14Z badkins joined #scheme 2020-08-02T16:59:50Z badkins quit (Ping timeout: 260 seconds) 2020-08-02T17:00:29Z badkins joined #scheme 2020-08-02T17:06:18Z badkins quit (Ping timeout: 265 seconds) 2020-08-02T17:10:46Z terpri__ joined #scheme 2020-08-02T17:13:52Z terpri_ quit (Ping timeout: 260 seconds) 2020-08-02T17:25:28Z deesix quit (Ping timeout: 246 seconds) 2020-08-02T17:26:40Z badkins joined #scheme 2020-08-02T17:31:40Z deesix joined #scheme 2020-08-02T17:43:45Z caltelt joined #scheme 2020-08-02T17:58:02Z klovett_ is now known as klovett 2020-08-02T17:59:15Z drakonis joined #scheme 2020-08-02T18:14:59Z shifty quit (Ping timeout: 240 seconds) 2020-08-02T18:15:57Z shifty joined #scheme 2020-08-02T18:24:23Z nikita` joined #scheme 2020-08-02T18:30:11Z notzmv quit (Ping timeout: 240 seconds) 2020-08-02T18:34:00Z nly joined #scheme 2020-08-02T18:54:43Z jcowan: I've been off-IRC for several days, so reading scrool 2020-08-02T18:56:20Z Riastradh: scroooooooooooool 2020-08-02T18:56:22Z jcowan: There is a project underway to get the Xerox Interlisp-D system (which supports both Interlisp and Common Lisp) working again using a microcode emulator. The barrier with getting Genera working is that although we have a microcode emulator that definitely works, we do *not* have rights to distribute the Genera code itself. 2020-08-02T18:56:40Z Riastradh: Hmm. 2020-08-02T18:56:49Z Riastradh: I used Interlisp-D in some kind of emulator about 15 years ago. 2020-08-02T18:57:43Z Riastradh: Can't remember what it was. Part of me wants to say it ran under Solaris on SPARC but my memory is hazy at this point. 2020-08-02T18:57:55Z jcowan: I used an actual Xerox workstation running Lyric (the next to last release) in the early 80s, so my memory is even hazier. 2020-08-02T18:58:31Z jcowan: Fortunately, neither Interlisp-D nor Genera are orphan works. 2020-08-02T18:59:44Z jcowan: Riastradh: Does the use of "microcode" in the MIT Scheme source reflect a time when there actually was microcode, or is it just an in-joke? 2020-08-02T19:00:07Z Riastradh: former 2020-08-02T19:00:59Z badkins quit (Remote host closed the connection) 2020-08-02T19:01:38Z badkins joined #scheme 2020-08-02T19:01:42Z Riastradh: https://people.csail.mit.edu/riastradh/InterlispSEdit.mov.bz2 2020-08-02T19:02:15Z Riastradh: (SEdit -- and number42's sedit.el -- was the inspiration for paredit) 2020-08-02T19:02:36Z Riastradh: I think the narrator was chandler. 2020-08-02T19:05:36Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-02T19:06:04Z badkins quit (Ping timeout: 256 seconds) 2020-08-02T19:08:15Z Riastradh: jcowan: https://dspace.mit.edu/handle/1721.1/6334 2020-08-02T19:09:10Z remix2000 joined #scheme 2020-08-02T19:10:26Z Riastradh: After the Scheme-79 chip was designed and fabricated and its microcode implemented, someone (gjs? jar?) suggested that a bored undergrad named Chris translate the microcode into C to run the thing on Unix, so he ignored them and translated it to 68k assembly, and then later on translated it from 68k assembly to C. 2020-08-02T19:14:08Z efm quit (Read error: Connection reset by peer) 2020-08-02T19:15:21Z jcowan: I can only hear the audio, not see the pretty pictures. But I like radio. 2020-08-02T19:17:24Z Riastradh: heh 2020-08-02T19:18:18Z Riastradh: I'm not sure a verbal description of what Interlisp-D SEdit does makes for great radio drama, but hey. 2020-08-02T19:20:31Z badkins joined #scheme 2020-08-02T19:28:14Z badkins quit (Ping timeout: 260 seconds) 2020-08-02T19:32:08Z shifty quit (Ping timeout: 256 seconds) 2020-08-02T19:32:24Z shifty joined #scheme 2020-08-02T19:51:48Z badkins joined #scheme 2020-08-02T19:56:30Z badkins quit (Ping timeout: 256 seconds) 2020-08-02T20:00:49Z badkins joined #scheme 2020-08-02T20:12:13Z shifty quit (Ping timeout: 264 seconds) 2020-08-02T20:13:11Z shifty joined #scheme 2020-08-02T20:24:57Z shifty quit (Ping timeout: 265 seconds) 2020-08-02T20:25:17Z shifty joined #scheme 2020-08-02T20:35:29Z nikita` quit (Quit: leaving) 2020-08-02T20:38:17Z ggole quit (Quit: Leaving) 2020-08-02T20:47:25Z remix2000 quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2020-08-02T20:56:49Z remix2000 joined #scheme 2020-08-02T21:06:03Z jcowan: It does not. But it was interesting anyhow. 2020-08-02T21:07:23Z weinholt: the video works in xine 2020-08-02T21:09:30Z jcowan: Eh, I don't care. Normally I only watch videos for entertainment, not for instruction, and not too many of those. Life is too short to spend it being spoon-fed at someone else's notion of what the max rate of information flow is. 2020-08-02T21:09:40Z jcowan: Especially my life, of course. 2020-08-02T21:14:20Z daviid joined #scheme 2020-08-02T21:14:44Z daviid is now known as Guest52359 2020-08-02T21:15:18Z Guest52359 is now known as daviid 2020-08-02T21:24:14Z terpri_ joined #scheme 2020-08-02T21:27:37Z terpri__ quit (Ping timeout: 260 seconds) 2020-08-02T21:29:23Z shifty quit (Ping timeout: 240 seconds) 2020-08-02T21:30:02Z stepnem quit (Ping timeout: 260 seconds) 2020-08-02T21:30:03Z shifty joined #scheme 2020-08-02T21:30:28Z stepnem joined #scheme 2020-08-02T21:31:36Z drakonis quit (Ping timeout: 244 seconds) 2020-08-02T21:41:03Z drakonis joined #scheme 2020-08-02T21:44:48Z shifty quit (Ping timeout: 256 seconds) 2020-08-02T21:45:17Z shifty joined #scheme 2020-08-02T21:50:12Z notzmv joined #scheme 2020-08-02T21:55:00Z remix2000 quit (Quit: Textual IRC Client: www.textualapp.com) 2020-08-02T21:55:38Z rgherdt quit (Remote host closed the connection) 2020-08-02T21:56:43Z rgherdt joined #scheme 2020-08-02T21:59:12Z badkins quit (Remote host closed the connection) 2020-08-02T21:59:47Z badkins joined #scheme 2020-08-02T22:00:13Z gravicappa quit (Ping timeout: 246 seconds) 2020-08-02T22:04:34Z badkins quit (Ping timeout: 256 seconds) 2020-08-02T22:08:18Z badkins joined #scheme 2020-08-02T22:18:03Z badkins quit (Remote host closed the connection) 2020-08-02T22:18:39Z badkins joined #scheme 2020-08-02T22:21:46Z badkins quit (Remote host closed the connection) 2020-08-02T22:22:00Z badkins joined #scheme 2020-08-02T22:33:23Z shifty quit (Ping timeout: 240 seconds) 2020-08-02T22:33:50Z shifty joined #scheme 2020-08-02T22:43:44Z torbo joined #scheme 2020-08-02T22:45:52Z badkins quit (Remote host closed the connection) 2020-08-02T22:47:27Z badkins joined #scheme 2020-08-02T22:52:25Z badkins quit (Ping timeout: 264 seconds) 2020-08-02T23:30:05Z rgherdt quit (Ping timeout: 272 seconds) 2020-08-02T23:50:05Z stepnem quit (Ping timeout: 240 seconds) 2020-08-02T23:50:30Z stepnem joined #scheme 2020-08-02T23:53:31Z lisbeths quit (Remote host closed the connection) 2020-08-03T00:07:50Z nly quit (Remote host closed the connection) 2020-08-03T00:13:17Z delucks left #scheme 2020-08-03T00:13:44Z mdhughes: I'm a lot less interested in the LISP Machine hardware/Genera specific, as another dev environment with that kind of graphical interconnection. 2020-08-03T00:14:37Z Blukunfando quit (Ping timeout: 264 seconds) 2020-08-03T00:14:49Z mdhughes: As I noted a couple months ago: https://mdhughes.tech/2020/04/27/lisp-machines/ 2020-08-03T00:15:49Z aeth: for entertainment, I usually watch videos at 2x unless the speaker is hard to understand 2020-08-03T00:16:11Z aeth: for tech stuff, I'll usually try to load it in VLC so I can go beyond the 2x of web browsers. 2020-08-03T00:18:57Z aeth: A lot of sites with videos (e.g. Reddit) seem to find a way to block even switching the browser-provided feature of setting video to 2x speed. That makes these websites absolutely worthless for videos, and helps cement YouTube's monopoly. 2020-08-03T00:19:28Z mdhughes: You can use youtube-dl to grab videos from many sources, including reddit and twitter. 2020-08-03T00:20:05Z aeth: Yes, but now I have to download them, which few videos are worth. (And even for the videos that are sort of worth it, to preserve them I'd have to start data hoarding and I'd probably need multiple 12 TB HDDs for that.) 2020-08-03T00:20:23Z mdhughes: You can delete files, turns out. 2020-08-03T00:20:53Z aeth: VLC can stream YouTube and some other sites directly (iirc vimeo? it's been a while), and you can use that to watch multihour videos at > 2x speed. There might be some browser extensions for that, too. 2020-08-03T00:22:13Z aeth: If the video is > 2 hours, I'm probably not going to even watch it at 2x speed, if I don't just skip around. 2020-08-03T00:23:28Z aeth: (These tend to be archived livestreams.) 2020-08-03T00:30:23Z cjb joined #scheme 2020-08-03T00:41:25Z zooey joined #scheme 2020-08-03T00:48:57Z badkins joined #scheme 2020-08-03T00:53:05Z badkins quit (Ping timeout: 240 seconds) 2020-08-03T00:58:39Z jgart joined #scheme 2020-08-03T01:10:12Z jgart: Just wanted to ask how some in the scheme community would solve this problem using this description of an algorithm for a simplified quicksort: 2020-08-03T01:10:18Z jgart: If the list is empty, there is nothing to do. Otherwise: 1. Take the first element of the list 2. Find all elements in the rest of the list that are less that the first element, and sort them. 3. Find all elements in the rest of the list that are >= that the first element, and sort them 4. Combine the three parts together to get the final result. 2020-08-03T01:11:11Z jgart: sorted smaller elements + first-element + sorted larger elements 2020-08-03T01:14:54Z jgart: If you feel like trying the above just debian paste it below. Any example implementations are greatly appreciated 2020-08-03T01:19:08Z Riastradh: I'd write a recursive procedure using (partition p L), which returns two values -- a list of the elements x of L for which (p x) is true, and a list of the elements x of L for which (p x) is false. 2020-08-03T01:20:32Z mdhughes loves doing CS homework 2020-08-03T01:21:06Z jgart: Riastradh, you mean partition from srfi-1? 2020-08-03T01:21:12Z Riastradh: jgart: correct 2020-08-03T01:21:25Z cjb quit (Ping timeout: 245 seconds) 2020-08-03T01:23:07Z jgart: Riastradh, thanks! 2020-08-03T01:32:35Z caltelt quit (Ping timeout: 240 seconds) 2020-08-03T01:33:43Z cjb joined #scheme 2020-08-03T01:37:35Z badkins joined #scheme 2020-08-03T01:42:02Z trystero quit (Ping timeout: 260 seconds) 2020-08-03T01:44:13Z notzmv quit (Ping timeout: 246 seconds) 2020-08-03T01:55:12Z notzmv joined #scheme 2020-08-03T02:02:29Z badkins quit (Remote host closed the connection) 2020-08-03T02:05:31Z badkins joined #scheme 2020-08-03T02:07:13Z terpri__ joined #scheme 2020-08-03T02:10:30Z badkins quit (Ping timeout: 256 seconds) 2020-08-03T02:10:32Z terpri_ quit (Ping timeout: 260 seconds) 2020-08-03T02:12:20Z terpri__ quit (Remote host closed the connection) 2020-08-03T02:12:43Z terpri__ joined #scheme 2020-08-03T02:21:09Z badkins joined #scheme 2020-08-03T02:42:02Z Fare quit (Ping timeout: 260 seconds) 2020-08-03T02:48:05Z shifty quit (Ping timeout: 240 seconds) 2020-08-03T02:48:12Z badkins quit (Remote host closed the connection) 2020-08-03T02:49:17Z badkins joined #scheme 2020-08-03T02:49:48Z terpri__ is now known as terpri 2020-08-03T02:54:12Z badkins quit (Ping timeout: 256 seconds) 2020-08-03T03:08:25Z skapata quit (Remote host closed the connection) 2020-08-03T03:11:17Z skapata joined #scheme 2020-08-03T03:23:21Z torbo quit (Remote host closed the connection) 2020-08-03T03:24:02Z stepnem_ joined #scheme 2020-08-03T03:24:13Z stepnem quit (Ping timeout: 264 seconds) 2020-08-03T03:43:34Z zmt00 joined #scheme 2020-08-03T04:00:14Z Fare joined #scheme 2020-08-03T04:06:59Z lritter joined #scheme 2020-08-03T04:16:12Z cjb quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-08-03T04:18:14Z skapata quit (Remote host closed the connection) 2020-08-03T04:19:47Z acarrico quit (Ping timeout: 240 seconds) 2020-08-03T04:20:37Z Fare quit (Ping timeout: 260 seconds) 2020-08-03T04:22:30Z cjb joined #scheme 2020-08-03T04:47:10Z Riastradh quit (Remote host closed the connection) 2020-08-03T04:50:40Z badkins joined #scheme 2020-08-03T04:52:25Z zmt00 quit (Ping timeout: 264 seconds) 2020-08-03T04:53:53Z zmt00 joined #scheme 2020-08-03T04:53:55Z zmt00 quit (Remote host closed the connection) 2020-08-03T04:54:16Z zmt00 joined #scheme 2020-08-03T04:54:45Z badkins quit (Ping timeout: 240 seconds) 2020-08-03T05:12:01Z gravicappa joined #scheme 2020-08-03T05:13:11Z edgar-rft quit (Quit: Leaving) 2020-08-03T05:51:35Z zmt00 quit (Read error: Connection reset by peer) 2020-08-03T06:00:01Z jgart quit (Quit: Leaving) 2020-08-03T06:10:43Z drakonis quit (Quit: WeeChat 2.8) 2020-08-03T06:51:42Z badkins joined #scheme 2020-08-03T06:56:04Z badkins quit (Ping timeout: 246 seconds) 2020-08-03T07:06:28Z klovett quit (Remote host closed the connection) 2020-08-03T07:07:07Z klovett joined #scheme 2020-08-03T07:58:00Z klovett quit (Remote host closed the connection) 2020-08-03T07:58:14Z klovett joined #scheme 2020-08-03T08:00:18Z stepnem_ quit (Read error: Connection reset by peer) 2020-08-03T08:03:39Z stepnem joined #scheme 2020-08-03T08:03:54Z rain1 joined #scheme 2020-08-03T08:04:28Z ggole joined #scheme 2020-08-03T08:07:49Z hendursa1 joined #scheme 2020-08-03T08:10:03Z hendursaga quit (Ping timeout: 240 seconds) 2020-08-03T08:48:49Z cjb quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-08-03T08:52:41Z badkins joined #scheme 2020-08-03T08:54:35Z nikita` joined #scheme 2020-08-03T08:56:49Z badkins quit (Ping timeout: 246 seconds) 2020-08-03T09:20:53Z rgherdt joined #scheme 2020-08-03T09:36:38Z daviid quit (Ping timeout: 260 seconds) 2020-08-03T09:59:27Z daviid joined #scheme 2020-08-03T09:59:48Z daviid is now known as Guest85663 2020-08-03T10:01:20Z shifty joined #scheme 2020-08-03T10:19:48Z tryte quit (Remote host closed the connection) 2020-08-03T10:20:02Z tryte joined #scheme 2020-08-03T10:40:57Z klovett_ joined #scheme 2020-08-03T10:45:05Z klovett_ quit (Ping timeout: 240 seconds) 2020-08-03T10:45:13Z klovett quit (Ping timeout: 264 seconds) 2020-08-03T10:53:45Z badkins joined #scheme 2020-08-03T10:57:55Z badkins quit (Ping timeout: 246 seconds) 2020-08-03T11:54:33Z Fare joined #scheme 2020-08-03T11:54:35Z bitmapper quit (Ping timeout: 240 seconds) 2020-08-03T12:03:18Z edgar-rft joined #scheme 2020-08-03T12:31:20Z xelxebar_ quit (Read error: Connection reset by peer) 2020-08-03T12:31:46Z xelxebar joined #scheme 2020-08-03T12:42:52Z acarrico joined #scheme 2020-08-03T13:09:57Z zig quit (Quit: WeeChat 2.8) 2020-08-03T13:18:53Z theseb joined #scheme 2020-08-03T13:23:18Z hendursa1 quit (Quit: hendursa1) 2020-08-03T13:23:38Z hendursaga joined #scheme 2020-08-03T13:28:45Z klovett joined #scheme 2020-08-03T13:29:12Z terpri_ joined #scheme 2020-08-03T13:30:59Z torbo joined #scheme 2020-08-03T13:32:15Z skapata joined #scheme 2020-08-03T13:32:27Z terpri quit (Ping timeout: 260 seconds) 2020-08-03T13:38:40Z skapata quit (Remote host closed the connection) 2020-08-03T13:40:07Z skapata joined #scheme 2020-08-03T13:40:29Z badkins joined #scheme 2020-08-03T13:53:17Z klovett_ joined #scheme 2020-08-03T13:56:48Z klovett quit (Ping timeout: 256 seconds) 2020-08-03T13:59:17Z lritter quit (Quit: Leaving) 2020-08-03T14:05:11Z rgherdt quit (Quit: Leaving) 2020-08-03T14:07:11Z rgherdt joined #scheme 2020-08-03T14:08:14Z klovett_ quit (Remote host closed the connection) 2020-08-03T14:08:42Z rgherdt quit (Client Quit) 2020-08-03T14:08:48Z klovett joined #scheme 2020-08-03T14:10:02Z rgherdt joined #scheme 2020-08-03T14:12:18Z trystero joined #scheme 2020-08-03T14:14:43Z Fare: I'm so happy about my with-id macro, that I don't understand why no other schemer seems to like it or have it written before. 2020-08-03T14:15:14Z jcowan: Pointer (or copy)? 2020-08-03T14:15:15Z Fare: https://github.com/fare/gerbil-utils/blob/master/with-id.ss 2020-08-03T14:17:36Z klovett quit (Ping timeout: 256 seconds) 2020-08-03T14:21:48Z Fare: it allows you to escape hygiene in a controled way, synthesizing identifiers in a provided context. 2020-08-03T14:22:03Z Fare: What do others use for that purpose? 2020-08-03T14:22:20Z Fare: syntax-case ? Yikes. 2020-08-03T14:35:22Z hugh_marera joined #scheme 2020-08-03T14:46:29Z hugh_marera quit (Quit: hugh_marera) 2020-08-03T14:46:52Z hugh_marera joined #scheme 2020-08-03T14:55:44Z Riastradh joined #scheme 2020-08-03T14:58:28Z klovett joined #scheme 2020-08-03T15:01:49Z gioyik joined #scheme 2020-08-03T15:10:58Z shifty quit (Ping timeout: 246 seconds) 2020-08-03T15:18:21Z jcowan: I think syntax-parameters is often what is wanted, though only a few Schemes have it. 2020-08-03T15:18:31Z jcowan: There's a SRFI, but of course the implementation is not portablel 2020-08-03T15:21:44Z bitmapper joined #scheme 2020-08-03T15:23:48Z Riastradh: syntax-parameters are evil 2020-08-03T15:24:04Z Riastradh: (at least, that's what I remember concluding a decade ago) 2020-08-03T15:26:16Z ahungry joined #scheme 2020-08-03T15:29:21Z gwatt: `identifierify' that's a mouthful 2020-08-03T15:30:02Z gwatt: Fare: I can't immediately see how it's better than with-syntax + datum->syntax 2020-08-03T15:31:40Z Fare: much lighter weight 2020-08-03T15:32:22Z Fare: gwatt: identifierify is just yet another way of concatenating stuff into a string, then making an identifier out of that 2020-08-03T15:33:20Z Fare: i.e. (identifierify ctx foo: #'bar 1) => #'foobar1 (or, depending on what #'bar actually expands to, something else) 2020-08-03T15:33:44Z gwatt: ah, neat 2020-08-03T15:35:39Z hugh_marera quit (Read error: Connection reset by peer) 2020-08-03T15:37:20Z zig joined #scheme 2020-08-03T15:42:13Z gwatt: Fare: the big saving over with-syntax seems to be that I can specify multiple identifiers to unhygienically insert at once. 2020-08-03T15:42:44Z Fare: that, also the default is same-name, and it works with syntax-rules 2020-08-03T15:53:16Z drakonis joined #scheme 2020-08-03T15:54:41Z zmt00 joined #scheme 2020-08-03T16:04:49Z badkins quit (Remote host closed the connection) 2020-08-03T16:05:22Z badkins joined #scheme 2020-08-03T16:09:41Z badkins quit (Remote host closed the connection) 2020-08-03T16:09:50Z badkins_ joined #scheme 2020-08-03T16:12:16Z hugh_marera joined #scheme 2020-08-03T16:12:59Z gioyik quit (Ping timeout: 240 seconds) 2020-08-03T16:31:51Z gioyik joined #scheme 2020-08-03T16:36:33Z badkins_ quit (Remote host closed the connection) 2020-08-03T16:37:06Z badkins joined #scheme 2020-08-03T16:41:59Z badkins quit (Ping timeout: 265 seconds) 2020-08-03T16:48:38Z epony quit (Ping timeout: 258 seconds) 2020-08-03T16:59:27Z klovett_ joined #scheme 2020-08-03T17:02:45Z klovett quit (Ping timeout: 240 seconds) 2020-08-03T17:04:40Z drakonis quit (Quit: WeeChat 2.8) 2020-08-03T17:08:08Z drakonis joined #scheme 2020-08-03T17:10:30Z notzmv quit (Ping timeout: 265 seconds) 2020-08-03T17:20:37Z gravicappa quit (Ping timeout: 264 seconds) 2020-08-03T17:23:29Z terpri_ is now known as terpri 2020-08-03T17:30:36Z epony joined #scheme 2020-08-03T17:37:04Z klovett_ is now known as klovett 2020-08-03T18:03:35Z badkins joined #scheme 2020-08-03T18:08:10Z badkins quit (Ping timeout: 256 seconds) 2020-08-03T18:11:57Z shifty joined #scheme 2020-08-03T18:14:09Z epony quit (Quit: reconfigure) 2020-08-03T18:14:42Z epony joined #scheme 2020-08-03T18:17:33Z badkins joined #scheme 2020-08-03T18:22:24Z badkins quit (Ping timeout: 256 seconds) 2020-08-03T18:41:31Z gravicappa joined #scheme 2020-08-03T18:47:24Z zig: live editing imgui with s7 https://youtu.be/MgHsl0u26MY 2020-08-03T18:50:34Z gravicappa quit (Ping timeout: 260 seconds) 2020-08-03T18:52:46Z gravicappa joined #scheme 2020-08-03T18:57:12Z nikita` quit (Quit: leaving) 2020-08-03T19:01:16Z theseb quit (Quit: Leaving) 2020-08-03T19:03:08Z zig: erkin: where can I find your scheme logo? I want to update the avatar of @schemers@mastodon.technology 2020-08-03T19:04:52Z zig: nvm got it on http://erkin.party 2020-08-03T19:07:17Z wasamasa: erkin: you may want to work on that mimetypes config on your webserver 2020-08-03T19:07:32Z wasamasa: erkin: it doesn't serve .rkt and such as plain text 2020-08-03T19:08:08Z nikita` joined #scheme 2020-08-03T19:17:40Z elflng quit (Quit: leaving) 2020-08-03T19:30:48Z badkins joined #scheme 2020-08-03T19:47:26Z whiteline_ quit (Read error: Connection reset by peer) 2020-08-03T19:47:51Z whiteline joined #scheme 2020-08-03T20:12:59Z notzmv joined #scheme 2020-08-03T20:20:52Z elflng joined #scheme 2020-08-03T20:34:03Z hugh_marera quit (Quit: hugh_marera) 2020-08-03T20:36:38Z grant joined #scheme 2020-08-03T20:38:49Z ahungry quit (Remote host closed the connection) 2020-08-03T20:47:07Z grant left #scheme 2020-08-03T20:48:50Z seepel1 joined #scheme 2020-08-03T20:53:37Z seepel1 quit (Ping timeout: 264 seconds) 2020-08-03T20:54:56Z theseb joined #scheme 2020-08-03T21:07:50Z theseb quit (Quit: Leaving) 2020-08-03T21:09:06Z ggole quit (Quit: Leaving) 2020-08-03T21:12:35Z gravicappa quit (Ping timeout: 240 seconds) 2020-08-03T21:15:41Z casaca quit (Remote host closed the connection) 2020-08-03T21:15:43Z zig quit (Quit: WeeChat 2.8) 2020-08-03T21:16:05Z casaca joined #scheme 2020-08-03T21:20:11Z aeth: "best viewed with any browser" 2020-08-03T21:20:19Z aeth: wow, that's an old meme 2020-08-03T21:20:28Z aeth: one of the first internet memes? 2020-08-03T21:24:07Z drakonis quit (Ping timeout: 240 seconds) 2020-08-03T21:32:11Z drakonis joined #scheme 2020-08-03T21:33:22Z ahungry joined #scheme 2020-08-03T21:33:52Z trystero quit (Ping timeout: 256 seconds) 2020-08-03T21:34:10Z jcowan: I can't speak to that, but probably the most frequent meme (of any size) is "All trademarks are the property of their respective owners." 2020-08-03T21:37:11Z autumn[m]: what about "best viewed with no browser at all" 2020-08-03T21:37:59Z gwatt: In 2013 my power company recommended that I upgrade my browser to Netscape Navigator or IE 4.0 2020-08-03T21:41:19Z autumn[m]: I suppose you could just like write the REAL page in a big comment at the top of the file, and then just have "best viewed without a browser" in tiny text at the bottom of a white background. not that it'd amuse anyone. 2020-08-03T21:42:49Z badkins quit (Remote host closed the connection) 2020-08-03T21:43:55Z badkins joined #scheme 2020-08-03T21:47:10Z badkins quit (Remote host closed the connection) 2020-08-03T21:47:19Z badkins joined #scheme 2020-08-03T21:51:43Z Guest85663 is now known as daviid 2020-08-03T22:00:10Z mononote quit (Remote host closed the connection) 2020-08-03T22:01:58Z mononote joined #scheme 2020-08-03T22:05:05Z whiteline quit (Ping timeout: 240 seconds) 2020-08-03T22:06:23Z mononote quit (Remote host closed the connection) 2020-08-03T22:08:20Z belmarca quit (Ping timeout: 258 seconds) 2020-08-03T22:09:10Z mononote joined #scheme 2020-08-03T22:09:54Z mononote quit (Remote host closed the connection) 2020-08-03T22:11:42Z mononote joined #scheme 2020-08-03T22:12:21Z caltelt joined #scheme 2020-08-03T22:13:55Z mononote quit (Remote host closed the connection) 2020-08-03T22:15:41Z mononote joined #scheme 2020-08-03T22:18:22Z badkins quit (Remote host closed the connection) 2020-08-03T22:27:02Z mononote quit (Remote host closed the connection) 2020-08-03T22:28:45Z mononote joined #scheme 2020-08-03T22:35:42Z mononote quit (Remote host closed the connection) 2020-08-03T22:37:25Z mononote joined #scheme 2020-08-03T23:05:31Z badkins joined #scheme 2020-08-03T23:08:33Z mononote quit (Remote host closed the connection) 2020-08-03T23:11:42Z aeth: jcowan: I was referring to a somewhat modern usage of "Internet meme". In particular, the "best viewed with any browser" non-animated GIF (shows its age right there) is an text-in-image-based parody that was all over the Internet in the 90s. 2020-08-03T23:11:46Z aeth: https://erkin.party/images/cheesy/any/littlebbv.gif 2020-08-03T23:13:05Z aeth: A very Geocities-era kind of meme. 2020-08-03T23:13:23Z aeth: Perhaps there are older ones, though, since that's from the browser war of the late 90s 2020-08-03T23:25:53Z erkin: I have a soft spot for '90s WWW. 2020-08-03T23:27:15Z erkin: I made a Geocities-style website (in HTML5 w/ CSS 4 no less) on Neocities a while ago but couldn't figure out what to fill it with: https://meow1917.neocities.org/ 2020-08-03T23:33:55Z erkin: wasamasa: I expected web browsers to honour 'text/*' MIME types but I suppose they only look for certain hardcoded MIME types. 2020-08-03T23:34:13Z erkin: I replaced all instances of `text/x-racket' with `text/plain'. 2020-08-03T23:54:21Z rgherdt quit (Ping timeout: 272 seconds) 2020-08-04T00:01:48Z mononote joined #scheme 2020-08-04T00:06:35Z mononote quit (Read error: Connection reset by peer) 2020-08-04T00:06:43Z mononote joined #scheme 2020-08-04T00:08:30Z mononote quit (Read error: Connection reset by peer) 2020-08-04T00:08:48Z mononote joined #scheme 2020-08-04T00:24:18Z belmarca joined #scheme 2020-08-04T00:29:47Z mononote quit (Ping timeout: 240 seconds) 2020-08-04T00:30:44Z mononote joined #scheme 2020-08-04T00:33:41Z aeth: erkin: Scheme content, obviously 2020-08-04T00:34:25Z jcowan: aeth: Ah. My website at http://vrici.lojban.org/~cowan/ says "Best in any browser, no matter how ancient" in plaih text. 2020-08-04T00:45:57Z aeth: I prefer minimalism with max-width, although idk when that was introduced so it might not work in every browser 2020-08-04T00:48:54Z aeth: I also force sans-serif in CSS, but I don't notice sites that are so minimalist that they don't even do this because I set Firefox's default font to sans serif, instead of the serif that makes these sites stand out. 2020-08-04T00:50:20Z aeth: Last time I did CSS I mostly settled for (forgive the CLism in the keyword syntax): (:body :font-family "sans-serif" :font-size "10pt" :max-width "650px" :margin "40px auto" :color "#000") 2020-08-04T00:50:58Z aeth: In hindsight, I probably should also set a background-color or not set a foreground color. 2020-08-04T00:52:38Z dan64- joined #scheme 2020-08-04T00:55:23Z sm2n: this website has documented a lot of old internet memes: https://blog.geocities.institute/ 2020-08-04T00:55:51Z dan64 quit (Ping timeout: 258 seconds) 2020-08-04T01:00:49Z shifty quit (Ping timeout: 264 seconds) 2020-08-04T01:15:15Z sp1ff` quit (Read error: Connection reset by peer) 2020-08-04T01:15:50Z sp1ff` joined #scheme 2020-08-04T01:33:18Z badkins quit (Remote host closed the connection) 2020-08-04T02:04:24Z mononote quit (Read error: Connection reset by peer) 2020-08-04T02:04:41Z mononote joined #scheme 2020-08-04T02:06:59Z mononote quit (Read error: Connection reset by peer) 2020-08-04T02:07:11Z mononote joined #scheme 2020-08-04T02:11:27Z aeth: yeah, geocities is from 1994 so there are probably older ones than the browser wars memes 2020-08-04T02:11:27Z mononote quit (Read error: Connection reset by peer) 2020-08-04T02:11:36Z mononote joined #scheme 2020-08-04T02:15:47Z mononote quit (Ping timeout: 240 seconds) 2020-08-04T02:15:57Z mononote joined #scheme 2020-08-04T02:22:18Z cjb joined #scheme 2020-08-04T02:25:25Z mononote quit (Ping timeout: 264 seconds) 2020-08-04T02:26:21Z mononote joined #scheme 2020-08-04T02:34:52Z mononote quit (Ping timeout: 246 seconds) 2020-08-04T02:39:23Z mononote joined #scheme 2020-08-04T02:42:57Z torbo quit (Remote host closed the connection) 2020-08-04T02:45:32Z zaifir: sm2n: Interesting read. Thanks. 2020-08-04T02:49:25Z caltelt quit (Ping timeout: 240 seconds) 2020-08-04T02:51:13Z mononote quit (Read error: Connection reset by peer) 2020-08-04T02:51:30Z mononote joined #scheme 2020-08-04T02:55:12Z terpri_ joined #scheme 2020-08-04T02:57:44Z mdhughes: I miss my virus warning. On my old site, I detected MSIE, and played a computery sample of me saying: "Warning! Virus detected! This computer has been infected with Microsloth Infernal Exploder. Reformat your hard drive before it spreads!" 2020-08-04T02:58:09Z mdhughes: I got kind of a lot of mail about that. 2020-08-04T02:58:16Z terpri quit (Ping timeout: 244 seconds) 2020-08-04T03:00:51Z autumn[m]: hehe 2020-08-04T03:09:52Z Riastradh quit (Ping timeout: 246 seconds) 2020-08-04T03:14:20Z terpri_ quit (Remote host closed the connection) 2020-08-04T03:14:38Z terpri_ joined #scheme 2020-08-04T03:16:46Z terpri__ joined #scheme 2020-08-04T03:17:54Z titanbiscuit quit (Ping timeout: 256 seconds) 2020-08-04T03:18:36Z titanbiscuit joined #scheme 2020-08-04T03:20:12Z terpri_ quit (Ping timeout: 260 seconds) 2020-08-04T03:27:38Z kori quit (Quit: WeeChat 2.8) 2020-08-04T03:33:20Z Riastradh joined #scheme 2020-08-04T03:33:48Z badkins joined #scheme 2020-08-04T03:39:18Z badkins quit (Ping timeout: 260 seconds) 2020-08-04T03:51:25Z cjb quit (Ping timeout: 245 seconds) 2020-08-04T04:20:35Z skapata quit (Remote host closed the connection) 2020-08-04T04:24:43Z aeth: mdhughes: I hope you updated it to drop the 'Infernal' part after Microsoft switched from IE to Edge. 2020-08-04T04:35:20Z mdhughes: I don't have anything against Edge, other than it's for an OS I'd never willingly use. They follow web standards more or less, about as well as Opera or any other last-place browser. 2020-08-04T04:36:12Z mdhughes: I hated MSIE because it was intentionally broken to fuck with Netscape and anyone not using Windows. 2020-08-04T04:38:45Z mdhughes: My site back then used Java applets for navigation and search, with a much less interesting fallback to links. The browser + Java applets should've killed platform-specific crap. We could've had a paradise, except for greedy, selfish, short-sighted Gates. 2020-08-04T04:40:15Z mdhughes: So here we are 25 years later, and I can sometimes get a cross-platform Scheme program working, with great effort, or 1000x slower JS SPA programs. 2020-08-04T04:43:32Z mdhughes: In which Mark is still frustrated by Racket: https://mdhughes.tech/2020/08/03/racket-cs-7-8/ 2020-08-04T04:48:31Z DGASAU joined #scheme 2020-08-04T04:56:27Z lritter joined #scheme 2020-08-04T04:57:23Z em-bee is now known as eMBee 2020-08-04T04:59:02Z eMBee quit (Changing host) 2020-08-04T04:59:02Z eMBee joined #scheme 2020-08-04T05:00:11Z shifty joined #scheme 2020-08-04T05:01:10Z eMBee is now known as em-bee 2020-08-04T05:01:35Z em-bee is now known as eMBee 2020-08-04T05:02:33Z zmt00 quit (Quit: Leaving) 2020-08-04T05:16:30Z gravicappa joined #scheme 2020-08-04T05:17:09Z bsima quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-08-04T05:20:02Z bsima joined #scheme 2020-08-04T05:37:57Z bsima quit (Quit: ZNC 1.7.5 - https://znc.in) 2020-08-04T05:43:56Z bsima joined #scheme 2020-08-04T06:25:23Z ahungry quit (Remote host closed the connection) 2020-08-04T06:31:31Z whiteline joined #scheme 2020-08-04T06:37:20Z zig joined #scheme 2020-08-04T06:47:45Z ofi joined #scheme 2020-08-04T06:47:47Z ggole joined #scheme 2020-08-04T07:02:18Z xelxebar quit (Remote host closed the connection) 2020-08-04T07:02:55Z xelxebar joined #scheme 2020-08-04T07:05:17Z zig: I am collecting ideas for about test libraries at https://github.com/srfi-explorations/srfi-test/issues/3 2020-08-04T07:05:20Z zig: chime in! 2020-08-04T07:10:33Z mdhughes: Previously noted: https://mdhughes.tech/2020/02/27/scheme-test-unit/ 2020-08-04T07:11:26Z mdhughes: There's probably more work to be done on the test runner, but SRFI-64 is perfectly fine as functionality goes. 2020-08-04T07:12:13Z drakonis quit (Quit: WeeChat 2.8) 2020-08-04T07:22:38Z ManDay joined #scheme 2020-08-04T07:24:25Z rgherdt joined #scheme 2020-08-04T07:32:57Z zig: ty 2020-08-04T07:35:41Z ofi quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-08-04T07:36:40Z ManDay quit (Quit: WeeChat 2.8) 2020-08-04T07:37:25Z gravicappa quit (Ping timeout: 264 seconds) 2020-08-04T07:57:20Z andrei-n joined #scheme 2020-08-04T08:01:34Z ofi joined #scheme 2020-08-04T08:04:04Z webshinra quit (Remote host closed the connection) 2020-08-04T08:07:55Z hendursa1 joined #scheme 2020-08-04T08:09:00Z ggole quit (Quit: Leaving) 2020-08-04T08:10:12Z webshinra joined #scheme 2020-08-04T08:10:23Z hendursaga quit (Ping timeout: 240 seconds) 2020-08-04T08:17:11Z gioyik quit (Quit: WeeChat 2.9) 2020-08-04T08:35:35Z webshinra quit (Ping timeout: 272 seconds) 2020-08-04T08:42:20Z tdammers: surely web assembly will save us 2020-08-04T08:43:05Z joast quit (Ping timeout: 240 seconds) 2020-08-04T08:45:55Z webshinra joined #scheme 2020-08-04T08:51:27Z Fare quit (Ping timeout: 240 seconds) 2020-08-04T09:04:45Z terpri_ joined #scheme 2020-08-04T09:07:52Z terpri__ quit (Ping timeout: 260 seconds) 2020-08-04T09:14:37Z Zenton quit (Read error: Connection reset by peer) 2020-08-04T09:15:04Z Zenton joined #scheme 2020-08-04T09:30:08Z mononote quit (Remote host closed the connection) 2020-08-04T09:31:58Z mononote joined #scheme 2020-08-04T09:33:44Z jboy quit (Quit: bye) 2020-08-04T09:39:49Z mononote quit (Remote host closed the connection) 2020-08-04T09:41:33Z mononote joined #scheme 2020-08-04T09:51:19Z mononote quit (Remote host closed the connection) 2020-08-04T09:53:04Z mononote joined #scheme 2020-08-04T09:59:03Z X-Scale` joined #scheme 2020-08-04T09:59:16Z X-Scale quit (Ping timeout: 256 seconds) 2020-08-04T09:59:48Z X-Scale` is now known as X-Scale 2020-08-04T10:00:44Z jboy joined #scheme 2020-08-04T10:07:11Z jboy quit (Quit: bye) 2020-08-04T10:20:15Z mononote quit (Remote host closed the connection) 2020-08-04T10:22:30Z mononote joined #scheme 2020-08-04T10:23:12Z mononote quit (Remote host closed the connection) 2020-08-04T10:24:49Z mononote joined #scheme 2020-08-04T10:28:09Z whiteline quit (Read error: Connection reset by peer) 2020-08-04T10:29:07Z whiteline joined #scheme 2020-08-04T10:31:25Z daviid quit (Ping timeout: 240 seconds) 2020-08-04T10:42:15Z jboy joined #scheme 2020-08-04T10:44:21Z mononote quit (Remote host closed the connection) 2020-08-04T10:46:09Z mononote joined #scheme 2020-08-04T10:51:18Z mononote quit (Remote host closed the connection) 2020-08-04T10:52:57Z ggole joined #scheme 2020-08-04T10:53:04Z mononote joined #scheme 2020-08-04T11:10:49Z galex-713 joined #scheme 2020-08-04T11:10:58Z galex-713: Hi 2020-08-04T11:11:29Z galex-713: Beside being lisp-1, continuation and ()/#f, what are the other differences between scheme and common lisp? 2020-08-04T11:20:14Z zig: non standard OOP framework 2020-08-04T11:24:27Z rgherdt: galex-713: although both languages are multi-paradigm, imo there's quite a big cultural difference between both communities. Schemers usually favor functional programming constructs, what is more natural in scheme due to lisp-1, mandatory tail-call recursion etc. So there is a tendence to avoid set!, mutating global variables etc. 2020-08-04T11:25:00Z rgherdt: whereas Common Lispers do a lot of OOP, which usually involve mutating states a lot 2020-08-04T11:27:19Z rgherdt: Another difference is the size: scheme has a minimal core language, which is extended by SRFI's. Common Lisp has a huge standard. So it's quite easier, for instance, to implement a minimal scheme that can be embedded in an environment. 2020-08-04T11:29:05Z rgherdt: besides its size, Common Lisp's standard is old and stable, so there's a higher compatibility among implementations 2020-08-04T11:30:19Z badkins joined #scheme 2020-08-04T11:32:33Z rgherdt: ^s/tail-call recursion/tail-call optimization 2020-08-04T11:33:13Z zig: galex-713: there is also macros, CL does not support syntax-rules or syntax-case. They only support def-macro 2020-08-04T11:33:21Z zig: that is they do not have hygenic macros 2020-08-04T11:33:32Z zig: afaik 2020-08-04T11:34:52Z badkins quit (Ping timeout: 256 seconds) 2020-08-04T11:44:49Z gravicappa joined #scheme 2020-08-04T11:50:20Z galex-713: zig: you can still implement or find a lib to do that, graham does 2020-08-04T11:51:33Z galex-713: rgherdt: I was searching for technical differences, not social ones, but thank you for hinting me OOP is about mutation, and recalling me CL packages are not split enough (if only they were hierarchized…) 2020-08-04T11:52:01Z galex-713: rgherdt: actually, I ask that thinking “why is it hard to redefine scheme or cl in terms on the other” 2020-08-04T11:57:35Z rgherdt: galex-713: I see. In this case, OOP is probably not so relevant, since there are libraries that implement something similar to CLOS for scheme. I guess you already pointed at the most substancial differences. The condition/restart sytem from CL is also unique. You can achieve some of the same things with continuable exceptions, but it's not the same 2020-08-04T12:02:43Z hendursa1 quit (Ping timeout: 240 seconds) 2020-08-04T12:04:57Z galex-713: rgherdt: are (delimited) continuations necessarily less efficient than gotos? 2020-08-04T12:05:05Z galex-713: and return 2020-08-04T12:05:12Z galex-713: and the way cl implements conditions? 2020-08-04T12:11:12Z hendursa1 joined #scheme 2020-08-04T12:11:21Z rgherdt: I'm not familiar with the implementation of conditions/gotos . Regarding continuations, their costs are largely implementation-dependent. 2020-08-04T12:11:46Z phwalkr joined #scheme 2020-08-04T12:18:54Z rgherdt: afaik calling continuations in CHICKEN, for instance, is very efficient due to the way the compiler works (transforming everything into CPS) 2020-08-04T12:18:57Z fadein quit (Read error: Connection reset by peer) 2020-08-04T12:19:53Z galex-713: rgherdt: more specifically I heard continuations made everything slow, even when not using continuations 2020-08-04T12:20:18Z rgherdt: but continuations and gotos don't express the same things (continuations in scheme are first-class objects, so they can be passed around, stored in variables etc) 2020-08-04T12:22:09Z galex-713: yeah and cl doesn’t have computed gotos, which, I think, have limited scope, to 2020-08-04T12:22:12Z galex-713: *too 2020-08-04T12:22:32Z galex-713: interesting 2020-08-04T12:22:52Z galex-713: I don’t really yet know continuations, but I count on sicp and seasoned schemer to teach me that 2020-08-04T12:23:43Z rgherdt: galex-713: maybe others can explain this performance aspect better. Afaik they do have some overhead, how large it is in practice I don't know. Having continuations on the other side allows very efficient implementations of green threads / coroutines, what is afaik difficult to achieve in CL 2020-08-04T12:24:31Z galex-713: I see 2020-08-04T12:25:13Z galex-713: to the overhead, I think this is because my friend is working on very efficient VMs generation, and he like uses gcc and then hand-check and tweak the assembly… so he’s really exigent 2020-08-04T12:25:17Z galex-713: *exigeant 2020-08-04T12:25:42Z galex-713: So! my first message captured all fundamental technical differences didn’t it? 2020-08-04T12:26:40Z siraben: Related: defunctionalization is a great way to grok continuations 2020-08-04T12:28:42Z rgherdt: as I recall, SICP and the Seasoned Schemer don't teach continuations (at least not in the sense used nowadays in scheme) 2020-08-04T12:31:20Z siraben: Might Matt loves writing his Scheme code in CPS in his blog posts 2020-08-04T12:42:19Z galex-713: rgherdt: really cool, that makes me a good reason more of reading the little series 2020-08-04T12:42:51Z galex-713: I’m just circonspect about the typer and provers one, they seems damn interesting but I’m afraid of loosing time 2020-08-04T12:45:24Z galex-713: rgherdt: wait, on #lisp somewhat pointed me dynamic scoping… I heard about “fluids” in scheme… are these standard or local to some implementations such as guile? 2020-08-04T12:50:07Z jcowan: Chicken smears the cost of first-class continuations over all function calling, whereas Chez is scrupulous about making them cost nothing if not used. Both POVs have their place. 2020-08-04T12:50:38Z jcowan: Fluids are not standard, but parameters (which are like first-class dynamic scope objects) are part of the latest standard. 2020-08-04T12:50:51Z galex-713: r7rs? 2020-08-04T12:50:57Z jcowan: Yes. 2020-08-04T12:51:08Z jcowan: (Sorry if I explain the obvious; I don't know your level of knowledge) 2020-08-04T12:51:45Z galex-713: okay so now it is, very cool! 2020-08-04T12:54:19Z jcowan: R7RS is a growing standard, so we are adding features: some present in CL, some not, often done slightly differently. For example, the condition system (which has been there since R6RS) has the same power as CL's (it provides both resumption after an exception and termination) but just arranges things a little differently. 2020-08-04T12:55:57Z jcowan: Many of the new capabilities now being standardized have been part of libs for a long time, others not so much. We have not yet seriously started to bite the bullet of standardizing things that are inherently not portable, which of course will be a lot more difficult for implementers. 2020-08-04T13:00:27Z jcowan rereads Costanza's paper on hygienic macros in CL 2020-08-04T13:07:19Z hendursa1 quit (Quit: hendursa1) 2020-08-04T13:07:35Z hendursaga joined #scheme 2020-08-04T13:18:16Z joast joined #scheme 2020-08-04T13:28:08Z shifty quit (Ping timeout: 256 seconds) 2020-08-04T13:28:43Z rain1: is there an HTML version 2020-08-04T13:30:25Z zig: not yet 2020-08-04T13:31:25Z mononote quit (Ping timeout: 264 seconds) 2020-08-04T13:31:34Z mononote joined #scheme 2020-08-04T13:32:53Z zig: galex-713: I put together the documentation of all current R7RS libraries in https://github.com/arew-scheme/book 2020-08-04T13:32:59Z zig: it is a pdf tho 2020-08-04T13:33:09Z zig: mostly all. 2020-08-04T13:33:28Z zig: it is missing scheme text and scheme show 2020-08-04T13:43:02Z galex-713: zig: where did you got that from? 2020-08-04T13:43:27Z galex-713: jcowan: so still no io/threads? 2020-08-04T13:44:45Z jcowan: There is a de facto standard for threads, mutexes, condition variables 2020-08-04T13:45:29Z redeemed joined #scheme 2020-08-04T13:46:32Z zig: galex-713: SRFI documents from https://srfi.schemers.org/ 2020-08-04T13:46:58Z zig: galex-713: I did it base on SRFI documents ;-) 2020-08-04T13:47:04Z zig: galex-713: I did it based on SRFI documents ;-) 2020-08-04T13:47:34Z galex-713: oh wait 2020-08-04T13:47:40Z galex-713: r7rs is based on srfis? 2020-08-04T13:47:45Z galex-713: *r7rs-large 2020-08-04T13:47:47Z rgherdt: galex-713: jcowan means srfi-18 for threads, its widely supported. 2020-08-04T13:48:01Z galex-713: jcowan: thank you 2020-08-04T13:48:06Z jcowan: galex-713: Yes, that's the process we use 2020-08-04T13:48:14Z galex-713: rgherdt: and thank you too, I didn’t see jcowan’s msg 2020-08-04T13:48:22Z galex-713: jcowan: cool, very very cool 2020-08-04T13:49:20Z jcowan: As chief cook and bottle washer, I assemble SRFIs into dockets, where they get voted on. I also write a lot of SRFIs myself, though that is changing now, and of course there are a lot of prior SRFIs that I didn't write. 2020-08-04T13:53:23Z rgherdt: galex-713: complementing what jcowan said, here you can see the already voted SRFI's that will be part of r7rs-large: https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/RedEdition.md https://bitbucket.org/cowan/r7rs-wg1-infra/src/default/TangerineEdition.md 2020-08-04T13:53:45Z jcowan: actually those repos are shut down 2020-08-04T13:53:52Z badkins joined #scheme 2020-08-04T13:54:03Z jcowan: the best approach atm is to follow the links fromn r7rs.org 2020-08-04T13:54:15Z rgherdt: jcowan: I didn't know that, thx 2020-08-04T13:54:24Z trystero joined #scheme 2020-08-04T13:54:44Z jcowan: ($@#* Bitbucket stopped support hg, so I switched to github, which allowed me to import them as git.) 2020-08-04T13:54:57Z galex-713: ooooh 2020-08-04T13:55:16Z galex-713: so SRFi’s are a largely more comprehensive, dirty and unofficial thing than I thought 2020-08-04T13:55:31Z galex-713: it’s kinda like a CSAN (like CTAN or CPAN but for scheme) 2020-08-04T13:55:41Z galex-713: but mor formalized, like RFCs 2020-08-04T13:56:33Z zig: unlike CPAN, there is some cooperation happening.. 2020-08-04T13:56:45Z jcowan: More like RFCs, except we also keep the implementations aroudn. 2020-08-04T13:58:10Z galex-713: yeah I see 2020-08-04T13:58:18Z wasamasa: python's PEPs are the better comparison 2020-08-04T13:58:34Z galex-713: jcowan: implementation too? it’s free non-copyleft isn’t it? 2020-08-04T13:58:44Z galex-713: I seldom know python 2020-08-04T13:59:02Z galex-713: I thought PEP were like XEP, like official extensions, not always implemented 2020-08-04T13:59:11Z galex-713: except python has a single implementation… 2020-08-04T13:59:14Z galex-713: contrarily to RFCs… 2020-08-04T13:59:23Z zig: galex-713: you are correct, but they implemented more often than not 2020-08-04T13:59:25Z jcowan: Right. Everything is MIT so that it can fit into any Scheme with whatever license. 2020-08-04T14:00:04Z jcowan: Also, Python has a central implementation which others have to track (unlike Perl, where there truly is only one). 2020-08-04T14:00:30Z jcowan: Scheme does not, not even to the extent that SBCL serves that role. 2020-08-04T14:00:54Z jcowan: Other CLs don't feel like they are falling behind if they don't implement every SBCLism. That's the benefit of having a standard. 2020-08-04T14:01:13Z bitmapper: i have to agree 2020-08-04T14:01:40Z bitmapper: with the benefit of having a standard thing 2020-08-04T14:01:48Z zig: That being said, arew will soon become standard... in a one meter perimeter around me ;) 2020-08-04T14:02:19Z galex-713: gnu clisp has got some history, I’m happy of that 2020-08-04T14:02:20Z galex-713: thought it was to invent saass, so it’s a ironic sad story 2020-08-04T14:02:28Z galex-713: when will i/o come' 2020-08-04T14:02:28Z galex-713: *? 2020-08-04T14:02:34Z jcowan: Racket is the largest Scheme in terms of innovations, libraries, and user base, but it is not particularly a source of ideas for other Schemes, nor does it easily take things from other Schemes. 2020-08-04T14:02:50Z galex-713: I mean, is there already something for pathnames and opening files/sockets standardized? 2020-08-04T14:03:00Z jcowan: Files yes, sockets no 2020-08-04T14:03:08Z galex-713: pathnames? 2020-08-04T14:03:09Z skapata joined #scheme 2020-08-04T14:03:09Z jcowan: but all Schemes de facto have socket libs 2020-08-04T14:03:24Z galex-713: mit scheme follows cl, I find it neat 2020-08-04T14:03:30Z jcowan: So far we only have string pathnames, not pathname objects. 2020-08-04T14:03:43Z galex-713: ok 2020-08-04T14:03:51Z Riastradh: Not clear that `pathname objects' are really helpful in 2020, to be honest. 2020-08-04T14:03:53Z jcowan: I have a pre-SRFI for a pathname library 2020-08-04T14:04:08Z Riastradh: Maybe they were helpful in 1985. 2020-08-04T14:04:18Z Riastradh: (at least, the fully articulated ones in Common Lisp) 2020-08-04T14:04:19Z galex-713: Riastradh: well, not useful at all, probably… except you have the hope someone will invent OSes beyond UNIX 2020-08-04T14:04:23Z bitmapper: they are on cross-platform 2020-08-04T14:04:30Z galex-713: also there are still some retro guys wanting to revive old platforms 2020-08-04T14:04:38Z bitmapper: if you want to write software that runs on windows/unix 2020-08-04T14:04:52Z galex-713: jcowan: compatible with cl? or different? for what? 2020-08-04T14:05:06Z galex-713: bitmapper: no, windows supports / as pathname separator 2020-08-04T14:05:12Z jcowan: I'm using the simplified Python approach of drive, root, and path internally, with some helpful procedures 2020-08-04T14:05:22Z galex-713: but some higher-level parts don’t 2020-08-04T14:05:28Z jcowan nods 2020-08-04T14:05:49Z galex-713: jcowan: oh… looks less powerful, like just a windows-ism :c 2020-08-04T14:06:20Z galex-713: maybe I’m the only one thinking like that and it’s stupid… but cl pathname seems comprehensive enough to maybe support URLs 2020-08-04T14:06:22Z galex-713: and then URIs 2020-08-04T14:06:42Z zig: galex-713: I got to go, I hope to see you again around here :) 2020-08-04T14:06:44Z galex-713: enabling transparent support of streamed (like tcp) network as if it was a file 2020-08-04T14:06:44Z Riastradh: Shoe-horning URIs into CL pathnames sounds painful. 2020-08-04T14:06:55Z galex-713: zig: it’s nice, you too, bye :) 2020-08-04T14:07:05Z Riastradh: jcowan: Sounds reasonable. 2020-08-04T14:07:25Z mononote quit (Ping timeout: 264 seconds) 2020-08-04T14:07:38Z mononote joined #scheme 2020-08-04T14:07:42Z galex-713: Riastradh: cl pathnames are just a standard API, what would be important is to implement something decent on that ground 2020-08-04T14:07:54Z galex-713: for instance, you could implement sxpath on top of cl pathname objects 2020-08-04T14:08:05Z galex-713: and get sxpath work over the network 2020-08-04T14:08:58Z galex-713: well xpath is slightly more powerful than cl-pathname objects, you couldn’t translate 1-to-1, you’d need something to support some kind of conditionals xpath supports 2020-08-04T14:09:04Z galex-713: but I think it’s doable 2020-08-04T14:09:54Z galex-713: I would find that so beautiful if a fully networked language could be easily built on top of sxpath which would build upon something as old as 1978, supporting the most powerful OSes of that time (some of which having features that current one lack) 2020-08-04T14:09:58Z galex-713: *current ones 2020-08-04T14:18:45Z ahungry joined #scheme 2020-08-04T14:20:07Z jcowan: Here are some examples of parsing using my proposal: in the results, car is drive, cadr is root, cddr is parts of the path: 2020-08-04T14:20:19Z jcowan: (parse-posix-pathname "/etc/passwd) => ("" "/" "etc" "passwd" 2020-08-04T14:20:19Z jcowan: (parse-posix-pathname "foo") => ("" "" "foo") 2020-08-04T14:20:19Z jcowan: (parse-posix-pathname "//foo/bar/baz") => ("//foo/bar" "/" "baz") 2020-08-04T14:20:19Z jcowan: (parse-windows-pathname "C:\\Windows) => ("c:" "/" "Windows") 2020-08-04T14:20:19Z jcowan: (parse-windows-pathname "\\\\host\\share\\dir\\file") => ("//host/share" "/" "dir" "file") 2020-08-04T14:20:19Z jcowan: (parse-windows-pathname "foo") => ("" "" "foo") 2020-08-04T14:20:19Z jcowan: (parse-windows-pathname "C:foo")) => ("C:" "" "foo") 2020-08-04T14:20:39Z jcowan: ~done~ 2020-08-04T14:21:05Z jcowan: parse-windows-pathname will work with slashes too 2020-08-04T14:21:48Z jcowan: LPNs are not distinct, but there is a predicate path-portable? that tells you if a path object has anything problematic about it. 2020-08-04T14:21:58Z Riastradh: Why "//foo/bar/baz" -> ("//foo/bar" "/" "baz")? 2020-08-04T14:22:21Z jcowan: Because that is how UNC paths work 2020-08-04T14:22:36Z jcowan: share named "bar" on host "foo" 2020-08-04T14:23:03Z ofi quit (Quit: ERC (IRC client for Emacs 26.3)) 2020-08-04T14:23:12Z Riastradh: ??? 2020-08-04T14:23:13Z Riastradh: posix? 2020-08-04T14:23:33Z jcowan: Posix allows double-slash to have special semantics, and AFAIK that is the only special semantics it is ever given 2020-08-04T14:23:40Z jcowan: (initial //, that is) 2020-08-04T14:24:15Z Riastradh: Who gives it that semantics? 2020-08-04T14:25:56Z jcowan: Cygwin for one, but some other places I can't remember offhand 2020-08-04T14:26:12Z Riastradh: Sounds like it should be parse-unc-pathname, not parse-posix-pathname. 2020-08-04T14:27:23Z jcowan: Could be. Or I might drop it. But it doesn't hurt anything to have it there. Few people create paths beginning with "//" and assume they will be equivalent to "/", though it sometimes happens from bad pathname merging. 2020-08-04T14:27:38Z jcowan: (which is one reason to have a library) 2020-08-04T14:37:04Z mononote quit (Remote host closed the connection) 2020-08-04T14:38:15Z Fare joined #scheme 2020-08-04T14:38:52Z mononote joined #scheme 2020-08-04T14:40:34Z zaifir quit (Ping timeout: 260 seconds) 2020-08-04T14:42:19Z zaifir joined #scheme 2020-08-04T14:50:37Z mononote quit (Ping timeout: 264 seconds) 2020-08-04T14:51:00Z mononote joined #scheme 2020-08-04T14:52:05Z mononote quit (Remote host closed the connection) 2020-08-04T14:53:50Z mononote joined #scheme 2020-08-04T14:58:05Z mononote quit (Ping timeout: 240 seconds) 2020-08-04T14:58:54Z mononote joined #scheme 2020-08-04T15:03:49Z mononote quit (Ping timeout: 264 seconds) 2020-08-04T15:03:57Z mononote joined #scheme 2020-08-04T15:07:31Z theseb joined #scheme 2020-08-04T15:15:54Z jcowan: Am I right to think that call/cc is an effect? 2020-08-04T15:19:55Z Riastradh: yes 2020-08-04T15:20:01Z galex-713 quit (Ping timeout: 244 seconds) 2020-08-04T15:20:31Z galex-713 joined #scheme 2020-08-04T15:29:41Z raingloom joined #scheme 2020-08-04T15:33:33Z edgar-rft quit (Quit: Leaving) 2020-08-04T15:40:13Z redeemed quit (Quit: q) 2020-08-04T15:54:18Z andrei-n quit (Quit: Leaving) 2020-08-04T16:09:02Z zmt00 joined #scheme 2020-08-04T16:28:54Z drakonis joined #scheme 2020-08-04T16:40:22Z phwalkr_ joined #scheme 2020-08-04T16:43:53Z phwalkr quit (Ping timeout: 272 seconds) 2020-08-04T16:47:42Z jcowan: Does that also mean that multiple values are an effect? 2020-08-04T16:50:40Z fadein joined #scheme 2020-08-04T16:51:21Z gwatt: Is call/cc an effect if you only use it as an escape? 2020-08-04T16:54:09Z Riastradh: no 2020-08-04T16:54:10Z Riastradh: yes 2020-08-04T16:59:55Z lritter quit (Quit: Leaving) 2020-08-04T17:17:53Z weinholt: hmm, funny. did "cd //tmp" in bash and pwd says //tmp... how obscure! 2020-08-04T17:18:13Z shifty joined #scheme 2020-08-04T17:27:02Z uplime: weinholt: thats expected 2020-08-04T17:27:11Z uplime: consecutive /'s become one / 2020-08-04T17:28:18Z uplime: https://unix.stackexchange.com/a/1919 2020-08-04T17:28:19Z gwatt: uplime: apparently a leading "//" is special and is preserved 2020-08-04T17:28:53Z uplime: in certain cases yeah, I think it can refer to things like a mounted/network filesystem 2020-08-04T17:31:31Z lisbeths joined #scheme 2020-08-04T17:31:44Z lisbeths: are macros part of the scheme standard? 2020-08-04T17:32:38Z badkins quit (Remote host closed the connection) 2020-08-04T17:32:56Z zaifir: lisbeths: Yes, since R5RS. 2020-08-04T17:33:08Z lisbeths: and is the syntax to that standardized? 2020-08-04T17:33:11Z badkins joined #scheme 2020-08-04T17:33:20Z lisbeths: s/that/R5RS macros/ 2020-08-04T17:33:22Z zaifir: lisbeths: syntax-rules is. 2020-08-04T17:33:42Z lisbeths: is there a book which helps you to implement R5RS 2020-08-04T17:33:53Z zaifir: lisbeths: What do you mean? 2020-08-04T17:34:13Z lisbeths: well I am having trouble understanding some of the internals of scheme and i would like to implement it in c but not support my implementation 2020-08-04T17:36:38Z xelxebar quit (Remote host closed the connection) 2020-08-04T17:37:04Z xelxebar joined #scheme 2020-08-04T17:37:50Z zaifir: lisbeths: What specifically are you having trouble with? 2020-08-04T17:37:54Z badkins quit (Ping timeout: 265 seconds) 2020-08-04T17:40:45Z lisbeths: I am trying to understand how macros work in chicken scheme in a way that is portable to other r5rs schemes 2020-08-04T17:41:05Z lisbeths: I understand what a macro is supposed to do: it takes an s expression, transforms it into another s expression, then evaluates it 2020-08-04T17:43:54Z lisbeths: I guess what I need is two or three very thorough guides on r5rs compliant macros 2020-08-04T17:44:01Z lisbeths: so that I can look through those guides and ask questions about them in here 2020-08-04T17:47:25Z zaifir: lisbeths: Side note: just use R7. 2020-08-04T17:47:44Z lisbeths: ah I see that works just fine for me 2020-08-04T17:47:51Z zaifir: lisbeths: This is a tough issue. There isn't a whole lot written about *implementing* syntax-rules out there. 2020-08-04T17:47:59Z lisbeths: one question I guess I have is that obviously an input s-expression can be thought of as a 'string' 2020-08-04T17:48:13Z zaifir: lisbeths: It's probably best to start with Friedman, et al's paper on hygienic macro expansion. 2020-08-04T17:49:05Z lisbeths: so if I think about it as matching within a string, and I am looking for a piece of syntax lets say "