2021-04-01T00:01:05Z gzj quit (Remote host closed the connection) 2021-04-01T00:01:26Z gzj joined #scheme 2021-04-01T00:01:52Z badkins quit (Ping timeout: 265 seconds) 2021-04-01T00:02:57Z jcowan quit (Ping timeout: 250 seconds) 2021-04-01T00:03:31Z physpi quit (Ping timeout: 248 seconds) 2021-04-01T00:04:22Z klovett_ joined #scheme 2021-04-01T00:05:07Z ullbeking quit (Ping timeout: 250 seconds) 2021-04-01T00:05:09Z physpi joined #scheme 2021-04-01T00:05:18Z jcowan joined #scheme 2021-04-01T00:06:05Z ullbeking joined #scheme 2021-04-01T00:07:31Z klovett quit (Ping timeout: 268 seconds) 2021-04-01T00:12:05Z gzj quit (Remote host closed the connection) 2021-04-01T00:12:26Z gzj joined #scheme 2021-04-01T00:14:36Z klovett joined #scheme 2021-04-01T00:16:49Z klovett_ quit (Ping timeout: 252 seconds) 2021-04-01T00:24:23Z dbmikus quit (Read error: Connection reset by peer) 2021-04-01T00:48:49Z klovett_ joined #scheme 2021-04-01T00:51:46Z klovett quit (Ping timeout: 240 seconds) 2021-04-01T00:53:47Z klovett joined #scheme 2021-04-01T00:56:58Z klovett_ quit (Ping timeout: 240 seconds) 2021-04-01T01:05:05Z gzj quit (Remote host closed the connection) 2021-04-01T01:05:26Z gzj joined #scheme 2021-04-01T01:07:06Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-01T01:13:41Z aeth_ quit (Ping timeout: 240 seconds) 2021-04-01T01:15:42Z aeth joined #scheme 2021-04-01T01:23:42Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-01T01:38:44Z phillbush joined #scheme 2021-04-01T01:45:56Z badkins joined #scheme 2021-04-01T01:50:19Z badkins quit (Ping timeout: 252 seconds) 2021-04-01T01:51:20Z cjb quit 2021-04-01T02:02:14Z klovett_ joined #scheme 2021-04-01T02:03:25Z badkins joined #scheme 2021-04-01T02:04:46Z klovett quit (Ping timeout: 240 seconds) 2021-04-01T02:05:06Z indathrone joined #scheme 2021-04-01T02:05:28Z gzj quit (Remote host closed the connection) 2021-04-01T02:06:13Z gzj joined #scheme 2021-04-01T02:08:06Z badkins quit (Ping timeout: 240 seconds) 2021-04-01T02:14:45Z badkins joined #scheme 2021-04-01T02:20:33Z badkins quit (Ping timeout: 260 seconds) 2021-04-01T02:33:26Z pranavats quit (Ping timeout: 258 seconds) 2021-04-01T02:34:53Z pranavats joined #scheme 2021-04-01T02:35:42Z phillbush quit (Quit: Leaving) 2021-04-01T02:37:16Z aquijoule_ joined #scheme 2021-04-01T02:39:26Z richbridger quit (Ping timeout: 240 seconds) 2021-04-01T02:40:58Z X-Scale quit (Ping timeout: 240 seconds) 2021-04-01T02:55:00Z X-Scale joined #scheme 2021-04-01T02:58:13Z lockywolf: How do I replace non-printable characters in a string with escape sequences? 2021-04-01T03:03:08Z gzj quit (Remote host closed the connection) 2021-04-01T03:03:27Z gzj joined #scheme 2021-04-01T03:13:43Z foof: print the string to a terminal, take a screenshot, run ocr software on the image, run a diff algorithm on the original string vs the ocr output, replace the deleted substrings with their escape sequences. 2021-04-01T03:25:14Z lockywolf: hm... sounds modern and fashionable 2021-04-01T03:35:53Z klovett_ quit (Remote host closed the connection) 2021-04-01T03:36:30Z klovett joined #scheme 2021-04-01T03:41:45Z Zipheir: To make a hole in a wall, load 500 precision drills into a shell and fire it at the wall! 2021-04-01T03:43:00Z klovett quit (Remote host closed the connection) 2021-04-01T03:43:15Z klovett joined #scheme 2021-04-01T03:47:41Z klovett quit (Ping timeout: 240 seconds) 2021-04-01T03:52:23Z flatwhatson: lockywolf: I mean, you answered your own question. Traverse the string, check each character is printable, replace non-printables with escape sequence. 2021-04-01T03:53:04Z flatwhatson: Here's one bit: 2021-04-01T03:53:08Z flatwhatson: (define (escape-char c) 2021-04-01T03:53:08Z flatwhatson: (string-append "\\x" (number->string (char->integer c) 16))) 2021-04-01T03:57:39Z foof: ... and test with char-set:printing, though it may not fit the definition of printable you want. 2021-04-01T04:01:07Z gzj quit (Remote host closed the connection) 2021-04-01T04:01:27Z gzj joined #scheme 2021-04-01T04:18:06Z gzj quit (Remote host closed the connection) 2021-04-01T04:18:26Z gzj joined #scheme 2021-04-01T04:23:32Z aeth_ joined #scheme 2021-04-01T04:25:13Z aeth quit (Disconnected by services) 2021-04-01T04:25:18Z aeth_ is now known as aeth 2021-04-01T05:02:47Z nilgeisw joined #scheme 2021-04-01T05:11:45Z skapata quit (Remote host closed the connection) 2021-04-01T05:19:27Z aeth_ joined #scheme 2021-04-01T05:19:53Z aeth quit (Disconnected by services) 2021-04-01T05:19:55Z aeth_ is now known as aeth 2021-04-01T05:29:55Z keeperasmexcalib joined #scheme 2021-04-01T05:39:16Z ZombieChicken joined #scheme 2021-04-01T05:42:03Z keeperasmexcalib quit (Quit: reboot) 2021-04-01T05:43:58Z keeperasmexcalib joined #scheme 2021-04-01T05:46:50Z gravicappa joined #scheme 2021-04-01T05:46:57Z keeperasmexcalib quit (Client Quit) 2021-04-01T05:47:40Z keeperasmexcalib joined #scheme 2021-04-01T05:50:18Z keeperegp_ joined #scheme 2021-04-01T05:50:28Z keeperasmexcalib quit (Client Quit) 2021-04-01T05:50:48Z keeperegp_ quit (Remote host closed the connection) 2021-04-01T05:51:17Z keeperasmexcalib joined #scheme 2021-04-01T05:54:10Z malaclyps quit (Quit: gone) 2021-04-01T06:07:08Z gzj quit (Remote host closed the connection) 2021-04-01T06:07:27Z gzj joined #scheme 2021-04-01T06:16:20Z badkins joined #scheme 2021-04-01T06:21:17Z badkins quit (Ping timeout: 265 seconds) 2021-04-01T06:35:43Z jobol joined #scheme 2021-04-01T06:45:41Z aeth quit (Ping timeout: 240 seconds) 2021-04-01T06:47:43Z aeth joined #scheme 2021-04-01T06:52:48Z shawnw joined #scheme 2021-04-01T06:53:07Z gzj quit (Remote host closed the connection) 2021-04-01T06:53:28Z gzj joined #scheme 2021-04-01T07:06:08Z terpri quit (Remote host closed the connection) 2021-04-01T07:06:48Z mdhughes quit 2021-04-01T07:08:39Z terpri joined #scheme 2021-04-01T07:09:49Z frost-lab joined #scheme 2021-04-01T07:29:04Z lritter joined #scheme 2021-04-01T07:41:12Z keeperasmexcalib quit (Quit: EXIT) 2021-04-01T07:41:25Z keeperasmexcalib joined #scheme 2021-04-01T07:45:32Z keeperasmexcalib is now known as keeperegp_ 2021-04-01T07:45:48Z keeperegp_ is now known as keeperasmexcalib 2021-04-01T07:45:49Z aeth quit (Ping timeout: 260 seconds) 2021-04-01T07:47:01Z abralek[m] quit (Quit: Quit) 2021-04-01T07:47:15Z abralek[m] joined #scheme 2021-04-01T07:47:23Z aeth joined #scheme 2021-04-01T07:49:24Z keeperasmexcalib quit (Quit: EXIT) 2021-04-01T07:49:39Z keeperasmexcalib joined #scheme 2021-04-01T07:50:28Z keeperasmexcalib quit (Client Quit) 2021-04-01T07:52:37Z Aquazi joined #scheme 2021-04-01T08:01:46Z civodul joined #scheme 2021-04-01T08:02:58Z xsperry quit (Ping timeout: 268 seconds) 2021-04-01T08:06:58Z hendursa1 joined #scheme 2021-04-01T08:09:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-01T08:17:28Z badkins joined #scheme 2021-04-01T08:20:35Z rgherdt joined #scheme 2021-04-01T08:21:56Z badkins quit (Ping timeout: 260 seconds) 2021-04-01T08:35:52Z keeperasmexcalib joined #scheme 2021-04-01T08:38:18Z civodul quit (Quit: Rebooting into Emacs 27.2.) 2021-04-01T08:43:28Z civodul joined #scheme 2021-04-01T09:01:13Z ZombieChicken quit (Remote host closed the connection) 2021-04-01T09:53:09Z gzj quit (Read error: Connection reset by peer) 2021-04-01T09:53:29Z gzj joined #scheme 2021-04-01T09:58:28Z cchristiansen quit (Remote host closed the connection) 2021-04-01T09:59:08Z gzj quit (Remote host closed the connection) 2021-04-01T09:59:28Z gzj joined #scheme 2021-04-01T10:18:20Z badkins joined #scheme 2021-04-01T10:22:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-01T10:49:29Z matryoshka quit (Ping timeout: 250 seconds) 2021-04-01T10:49:43Z matryoshka joined #scheme 2021-04-01T10:59:44Z polezaivsani joined #scheme 2021-04-01T11:01:00Z frost-lab quit (Quit: Ping timeout (120 seconds)) 2021-04-01T11:01:26Z frost-lab joined #scheme 2021-04-01T11:09:12Z abralek[m] quit (Ping timeout: 268 seconds) 2021-04-01T11:10:11Z abralek[m] joined #scheme 2021-04-01T11:19:43Z abralek[m] quit (Read error: Connection reset by peer) 2021-04-01T11:20:39Z abralek[m] joined #scheme 2021-04-01T11:26:06Z gzj quit (Remote host closed the connection) 2021-04-01T11:26:27Z gzj joined #scheme 2021-04-01T11:27:08Z gzj quit (Remote host closed the connection) 2021-04-01T11:27:29Z gzj joined #scheme 2021-04-01T11:32:10Z frost-lab quit (Quit: Connection closed) 2021-04-01T12:06:15Z badkins joined #scheme 2021-04-01T12:19:26Z badkins quit (Ping timeout: 265 seconds) 2021-04-01T12:25:49Z notzmv quit (Ping timeout: 260 seconds) 2021-04-01T12:36:14Z dieggsy: I feel like there should be a case that takes an equality predicate as an argument somehow 2021-04-01T12:36:21Z dieggsy: it's odd to me that case defaults to eqv 2021-04-01T12:36:44Z dieggsy: it'd be easy to write myself, but idk, is there an existing library/SRFI that has something like this? 2021-04-01T12:37:05Z dieggsy: I know I could use match for this purpose as well, not sure if that's overkill. I know match simplifies down greatly since it's almost purely macro based 2021-04-01T12:39:56Z wasamasa: a condp SRFI? 2021-04-01T12:41:06Z wasamasa: there's select in the miscmacros egg 2021-04-01T12:41:52Z wasamasa: oh wait, that just evals the argument 2021-04-01T12:41:56Z wasamasa: it still uses eqv? 2021-04-01T12:47:14Z badkins joined #scheme 2021-04-01T12:56:11Z klovett joined #scheme 2021-04-01T13:03:54Z skapata joined #scheme 2021-04-01T13:06:14Z gzj quit (Read error: Connection reset by peer) 2021-04-01T13:06:36Z gzj joined #scheme 2021-04-01T13:21:12Z gzj quit (Remote host closed the connection) 2021-04-01T13:21:33Z gzj joined #scheme 2021-04-01T13:23:53Z flatwhatson quit (Remote host closed the connection) 2021-04-01T13:25:17Z amirouche: dieggsy: +1, except match can do it, and compile down to optimized cond / condp AFAIU 2021-04-01T13:25:41Z dieggsy: fair 2021-04-01T13:25:54Z amirouche: I was going to suggest to add match to chez. 2021-04-01T13:27:10Z amirouche: it is less error-prone than case / cond and more powerful than condp, since it is a new form there is no backward compatibility problem 2021-04-01T13:28:16Z flatwhatson joined #scheme 2021-04-01T13:29:39Z dieggsy: What's the workflow for doing 'real' programming with Chez? Are you writing everything yourself, or acquiring and loading source files manually? Or are you mostly just writing pure r6rs if you're using chez? There's no package manager or central place to get libraries AFAIU, right? 2021-04-01T13:31:13Z wasamasa: akku is a thing 2021-04-01T13:31:15Z wasamasa: so is thunderchez 2021-04-01T13:31:47Z dieggsy: wasamasa: sweet, i didn't really know about those 2021-04-01T13:31:48Z wasamasa: look, it has matchable: https://pizzahack.eu/fossil/thunderchez/home 2021-04-01T13:32:03Z amirouche: I do both download existing Scheme libraries (akku-r7rs, ssax tools, htmlprag), and write my own (argon, blake3, json, okvs..) 2021-04-01T13:33:41Z amirouche: honestly, I still have no project with chez that can be called "real", I spent last year and half getting together R7RS libraries, then wrote a http, json parser, did some more experiment with gambit js backend. 2021-04-01T13:34:57Z amirouche: and other experiments.. 2021-04-01T13:35:26Z wasamasa: (chibi match) is also available in akku 2021-04-01T13:35:56Z wasamasa: and (rapid match) which mentions chez, lol 2021-04-01T13:36:19Z wasamasa: so maybe chez had a match library already 2021-04-01T13:36:53Z amirouche: yes, there is match implementation that works with chez. 2021-04-01T13:40:25Z amirouche: Recently I spent some time on non-colored async library and concurrent ml for Chez.. then figured that gambit with termite does everything (and more) that I need. 2021-04-01T13:41:52Z amirouche: Also, I spent lot of time thinking... and for full disclosure, I procrastinated a lot over nlnet grant, waiting their replies. If nlnet did not support Babelia, I would be doing another project. 2021-04-01T13:42:09Z amirouche: That does not help. 2021-04-01T13:42:54Z wasamasa: so does that mean we'll actually get a proper release of nstore 2021-04-01T13:43:16Z amirouche: What will help is that I also procrastinated a lot because I needed to do things on my own (http, json, async...), instead of actually getting things done => do not fear to DIY. 2021-04-01T13:43:27Z amirouche: wasamasa: there is a release of nstore for Guile. 2021-04-01T13:43:38Z amirouche: but I did not run it for some time.. 2021-04-01T13:44:32Z amirouche: Also, two days ago, I tried to run guile-fibers benchmarks and it hanged 50% of the time out of 4 tries => I will not spend more time with guile. 2021-04-01T13:44:44Z wasamasa: lol 2021-04-01T13:45:46Z aeth quit (Ping timeout: 240 seconds) 2021-04-01T13:47:25Z amirouche: And that is yet-another-bad-luck story with Guile on the tech side of things, I already mentioned the social issues I had. 2021-04-01T13:47:57Z aeth joined #scheme 2021-04-01T13:48:04Z amirouche: 6 month or so, I reported a bug with delimited continuations in the 3.x stable release, I never got a thanks. 2021-04-01T13:48:30Z amirouche: it magically re-started to work, a few days, weeks later. 2021-04-01T13:50:43Z amirouche: It was related to guile-fibers and babelia, since the previous release of babelia use guile-fibers for both the crawler and web app. 2021-04-01T13:51:50Z amirouche: And, the reason I deleted all my projects is among other things, because I lost faith in free software because GNU and Guile. 2021-04-01T13:52:12Z amirouche: Once I rebuild babelia with prolly Gambit, I will delete the Guile projects. 2021-04-01T14:02:39Z polezaivsani left #scheme 2021-04-01T14:03:59Z nabla joined #scheme 2021-04-01T14:06:40Z wasamasa: yeah, keep doing that and eventually no projects remain 2021-04-01T14:06:52Z wasamasa: imagine if the rust people deleted all projects they got disillusioned with 2021-04-01T14:09:14Z gwatt: You'd still have several high-profile rust projects 2021-04-01T14:24:55Z notzmv joined #scheme 2021-04-01T14:34:21Z madage quit (Ping timeout: 240 seconds) 2021-04-01T14:57:15Z gzj quit (Read error: Connection reset by peer) 2021-04-01T14:57:36Z gzj joined #scheme 2021-04-01T15:05:17Z gzj quit (Remote host closed the connection) 2021-04-01T15:05:37Z gzj joined #scheme 2021-04-01T15:20:27Z Zipheir: dieggsy: I believe jcowan mentioned a "case-with" form (I'm not sure of the name) taking a custom comparison. 2021-04-01T15:21:42Z Zipheir: I recall asking about a string-case form long ago and was told that it was the Wrong Thing. (I agree, but I was writing something quick and dirty at the time.) 2021-04-01T15:22:16Z jcowan: case-using; I saw it a long time ago. The first argument is a procedure to use instead of eql?, and the rest is standard case clauses 2021-04-01T15:23:03Z gwatt: I know chez's non-r6rs case allows strings. I've use it to match command line arguments. 2021-04-01T15:23:53Z gzj quit (Ping timeout: 268 seconds) 2021-04-01T15:24:01Z torbo joined #scheme 2021-04-01T15:24:18Z nabla quit (Quit: Connection closed) 2021-04-01T15:29:52Z dieggsy: Zipheir: i also wanted that at some point when writing a quick script and ended up using match then 2021-04-01T15:31:30Z madage joined #scheme 2021-04-01T15:31:53Z Zipheir: Yeah, matching does it. 2021-04-01T15:32:44Z Zipheir: case is very special-purpose. IMHO it's best for symbols. 2021-04-01T15:40:38Z abralek[m] quit (Read error: Connection reset by peer) 2021-04-01T15:46:18Z shawnw quit (Ping timeout: 265 seconds) 2021-04-01T15:46:34Z badkins quit (Remote host closed the connection) 2021-04-01T15:47:02Z abralek[m] joined #scheme 2021-04-01T15:47:09Z badkins joined #scheme 2021-04-01T15:52:06Z badkins quit (Ping timeout: 240 seconds) 2021-04-01T15:56:10Z bitmapper joined #scheme 2021-04-01T16:00:41Z jcowan: And numbers, don't forget numbers. 2021-04-01T16:02:02Z Zipheir: True. But matching specific numbers seems like a rather niche use-case to me. 2021-04-01T16:02:15Z jcowan: Though it's true that even in C, where all values have to be numeric, they are often poor man's enums. 2021-04-01T16:02:41Z jcowan: Characters would be another case, suitable for recursive-descent parsers 2021-04-01T16:02:48Z jcowan: another case of case 2021-04-01T16:03:03Z Zipheir: Yes, I forgot about characters. That's important. 2021-04-01T16:07:01Z jcowan: CL has two alternatives: ecase (raise some condition if no case matches) and ccase (raise some condition continuably if no case matches). 2021-04-01T16:08:18Z jcowan: plus plain case, the idea being that people often forget to write a (else (error "can't happen)) clause at the end of a case that is normally exhaustive, so adding one letter gets you the Right Thing 2021-04-01T16:34:39Z aeth: it also can help when a CL compiler is smart enough to complain that a CASE isn't exhaustive but not smart enough to realize that it actually is in fact covering every branch 2021-04-01T16:35:16Z aeth: CASE will implicitly return NIL (think #f), but that might not be compatible with what comes next. ECASE makes sure the compiler knows no NIL is coming. 2021-04-01T16:36:27Z aeth: As for C... I think there's a lot of situations where you actually do store/use the number. For instance, serializing to/from a file or to/from the network. 2021-04-01T16:36:52Z aeth: Probably more common now than in the past because almost everything uses the Internet now 2021-04-01T16:49:38Z Zipheir: It seems like it would be very difficult to check if a case form is exhaustive. 2021-04-01T16:50:38Z Zipheir: I suppose with some amount of typing it would be possible. 2021-04-01T16:54:20Z gwatt: I think you need a statically typed language with sum types to prove exhaustive checking. 2021-04-01T16:54:37Z aeth: CL has static types and sum types. 2021-04-01T16:54:59Z aeth: Sure, most people don't use them, but compilers like SBCL can handle it anyway. 2021-04-01T16:55:43Z Zipheir: Well, gradual types. 2021-04-01T16:56:15Z aeth: Zipheir: Gradual typing just means you always have dynamic types and can optionally add static types. 2021-04-01T16:56:42Z aeth: Programmers like to treat categories like XORs when they're IORs 2021-04-01T16:56:42Z Zipheir: aeth: No! 2021-04-01T16:57:46Z aeth: Static = at compile time. Dynamic = at run time with type tags. Technically, things like tagged unions in a low-level programming language are just adding ad hoc dynamic typing to C/C++/etc. 2021-04-01T16:57:49Z Zipheir: aeth: There are several approaches to gradual typing, and that's one. Another way is to have a fully static system with a Dyn type. This actually can have fairly nice typing rules. 2021-04-01T16:58:00Z klovett quit (Remote host closed the connection) 2021-04-01T16:58:16Z aeth: Or, yeah, a Dyn type, I guess. 2021-04-01T16:58:23Z aeth: That's just one big tagged union though :-p 2021-04-01T16:58:40Z klovett joined #scheme 2021-04-01T16:58:42Z Zipheir: aeth: I seriously recommend reading some of the research going on in this area, at least since the early 2000s. 2021-04-01T16:58:42Z aeth: It's funny that Wikipedia treats "tagged union" and "sum type" as equivalent when they're not really. 2021-04-01T16:59:15Z aeth: Sum type = e.g. CL's OR type. Tagged union = a way to get a restricted form of dynamic typing in languages like C++. 2021-04-01T16:59:17Z Zipheir: That's ridiculous. 2021-04-01T16:59:46Z Zipheir: A tagged union is just an implementation of a sum type. 2021-04-01T17:00:01Z Zipheir: It's like redirecting λ-calculus to Scheme, or something. 2021-04-01T17:01:27Z Zipheir: I guess I'm feeling grumpy today. I'll be quiet now. 2021-04-01T17:03:13Z aeth: A tagged union is how you get a *dynamic* typed sum type in an otherwise static typed language. 2021-04-01T17:03:38Z aeth: More of a subset (or implementation technique) than an equivalent definition. 2021-04-01T17:04:10Z Zipheir: What's the type of such a dynamic sum type, though? 2021-04-01T17:04:34Z aeth: YourUnion, and which part of YourUnion it is is determined at runtime based on the runtime value of the tag 2021-04-01T17:04:38Z Zipheir: I doubt that could be defined in a Hindley-Milner-style system. 2021-04-01T17:05:10Z aeth: A tagged union has the static type of YourUnion and the dynamic type of the enum (or whatever) representing the tag. And, yeah, it kind of requires breaking safety, at least if it's not included in the language design from the start. 2021-04-01T17:05:38Z Zipheir: OK, the elements are of an enumerated type. 2021-04-01T17:05:50Z Zipheir: That doesn't break anything. 2021-04-01T17:06:33Z hendursa1 quit (Remote host closed the connection) 2021-04-01T17:06:46Z jao quit (Read error: Connection reset by peer) 2021-04-01T17:06:57Z Zipheir: But then, that's not dynamic, since the type of the object is always decidable. 2021-04-01T17:07:02Z hendursa1 joined #scheme 2021-04-01T17:07:27Z aeth: The problem is that (unless supported in the language implementation itself) it depends on a type system that you can just... break. Like in C. You know, how you get that famous fast inverse square root where it's both an int32 and a float. https://en.wikipedia.org/wiki/Fast_inverse_square_root 2021-04-01T17:07:54Z aeth: You can just implement that as a(n untagged) union if you want to be very slightly safer than the original implementation. 2021-04-01T17:08:26Z aeth: s/int32/uint32/ 2021-04-01T17:08:31Z Zipheir: This is the infamous "hole" of old-fashioned static typing systems, a feature which Niklaus Wirth called "a deadly disease, which the author of Pascal unfortunately allowed into that language". 2021-04-01T17:08:55Z aeth: Yeah. The tagged union reintroduces type safety to unions, but dynamic and by-convention. 2021-04-01T17:09:18Z aeth: Of course, you can just build that design pattern into your language itself. But that would look a lot like a subtype of a Dyn type or whatever. 2021-04-01T17:10:31Z aeth: Meanwhile, most "sum types" people talk about are static. 2021-04-01T17:11:29Z tdammers: well, technically *all* "types" are static 2021-04-01T17:11:33Z gwatt: Probably because most of the people who talk about sum types like static typing. 2021-04-01T17:11:34Z Zipheir: A ∨ B with two projections. 2021-04-01T17:11:50Z Zipheir: Oops, two injections, one case-style eliminator. 2021-04-01T17:11:56Z tdammers: then again "static" / "dynamic" is largely a matter of viewpoint 2021-04-01T17:11:56Z Zipheir: tdammers: Well, *yes*. 2021-04-01T17:12:25Z tdammers: and yet again, there's an important difference between *types* and *type checkers* 2021-04-01T17:12:33Z tdammers: the type checker may not exist, but the types still do 2021-04-01T17:13:59Z Zipheir: Indeed so. 2021-04-01T17:14:02Z aeth: Which is why I call "gradually typed" languages both static and dynamic. They tend to just be languages where the static type is Anything and the dynamic type is more specific, but with the ability to restrict the static type more. 2021-04-01T17:14:17Z aeth: I suppose you can say that ones that don't allow gradually typed are the same, just with Anything being forced at the static stage, but that's not particularly useful. 2021-04-01T17:15:16Z aeth: Technically, SBCL has three separate types for anything: dynamic (with the variable), statically declared (with the binding), and statically inferred. 2021-04-01T17:15:34Z aeth: JITs can probably get way more complicated. 2021-04-01T17:15:36Z Zipheir: I wonder if they've written out the typing rules. 2021-04-01T17:18:49Z Zipheir: Apparently no-one's done it. So who knows how it works. 2021-04-01T17:22:19Z Zipheir: But then there are plenty of other statically-typed languages out there with unknown typing rules. 2021-04-01T17:25:54Z Zipheir: I know that type theory is sort of unfamiliar in many programming cultures, but I'd really like to see more languages formalize their type systems. 2021-04-01T17:48:48Z badkins joined #scheme 2021-04-01T17:53:43Z badkins quit (Ping timeout: 268 seconds) 2021-04-01T18:03:06Z lritter quit (Ping timeout: 240 seconds) 2021-04-01T18:11:08Z klovett quit (Remote host closed the connection) 2021-04-01T18:11:25Z klovett joined #scheme 2021-04-01T18:13:16Z klovett_ joined #scheme 2021-04-01T18:16:08Z klovett quit (Ping timeout: 265 seconds) 2021-04-01T18:17:38Z acarrico joined #scheme 2021-04-01T18:29:26Z badkins joined #scheme 2021-04-01T18:32:08Z jao joined #scheme 2021-04-01T18:36:05Z abralek[m] quit (Ping timeout: 252 seconds) 2021-04-01T18:39:05Z abralek[m] joined #scheme 2021-04-01T18:43:11Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-01T18:45:02Z gravicappa joined #scheme 2021-04-01T18:52:40Z raingloom joined #scheme 2021-04-01T19:25:28Z terpri quit (Quit: Leaving) 2021-04-01T19:27:13Z terpri joined #scheme 2021-04-01T19:35:18Z phillbush joined #scheme 2021-04-01T19:40:20Z badkins quit (Remote host closed the connection) 2021-04-01T19:43:28Z badkins joined #scheme 2021-04-01T19:47:58Z badkins quit (Ping timeout: 240 seconds) 2021-04-01T20:01:45Z badkins joined #scheme 2021-04-01T20:02:14Z keeperasmexcalib is now known as Programmosaurus 2021-04-01T20:05:04Z jeko joined #scheme 2021-04-01T20:20:26Z nilgeisw quit (Remote host closed the connection) 2021-04-01T20:21:24Z jeko quit (Quit: jeko) 2021-04-01T20:23:34Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-01T20:53:39Z nckx is now known as Thunderbi 2021-04-01T21:08:05Z jobol quit (Quit: Leaving) 2021-04-01T21:17:06Z Zipheir quit (Quit: Eadem mutata resurgo.) 2021-04-01T21:19:55Z Zipheir joined #scheme 2021-04-01T21:25:43Z greaser|q quit (Changing host) 2021-04-01T21:25:43Z greaser|q joined #scheme 2021-04-01T21:25:47Z greaser|q is now known as GreaseMonkey 2021-04-01T21:43:54Z nikolayclfx quit (Quit: Ping timeout (120 seconds)) 2021-04-01T21:47:49Z cchristiansen joined #scheme 2021-04-01T21:52:26Z jcowan: tdammers: There is also an important distinction between pessimistic type checkers, which reject all code that cannot be proved statically type-correct, and optimistic type checkers, which reject only code that can be proved statically incorrect. 2021-04-01T22:00:33Z civodul quit (Ping timeout: 246 seconds) 2021-04-01T22:02:25Z badkins quit (Remote host closed the connection) 2021-04-01T22:12:49Z badkins joined #scheme 2021-04-01T22:34:30Z cjb joined #scheme 2021-04-01T23:08:19Z phillbush quit (Quit: Leaving) 2021-04-01T23:30:02Z phillbush joined #scheme 2021-04-01T23:38:09Z aeth_ joined #scheme 2021-04-01T23:40:11Z aeth quit (Ping timeout: 240 seconds) 2021-04-01T23:40:21Z aeth_ is now known as aeth 2021-04-01T23:42:17Z phillbush quit (Quit: Leaving) 2021-04-01T23:47:49Z badkins quit (Remote host closed the connection) 2021-04-01T23:48:25Z badkins joined #scheme 2021-04-01T23:48:48Z badkins quit (Remote host closed the connection) 2021-04-01T23:49:05Z badkins joined #scheme 2021-04-01T23:54:19Z rgherdt quit (Ping timeout: 246 seconds) 2021-04-01T23:58:40Z Zipheir: I wonder whether those systems really prove that a program is ill-typed, or if they just use some heuristics. 2021-04-02T00:00:22Z terpri_ joined #scheme 2021-04-02T00:02:58Z terpri quit (Ping timeout: 258 seconds) 2021-04-02T00:14:16Z jcowan: Zipheir: Although ERLANG is a dynamically typed language, type information is present both explicitly and implicitly at the level of Icode. The explicit such information is in the form of type tests which can be translations of explicit type guards in the ERLANG source code, or tests which have been introduced by the compiler to guard unsafe primitive operations. The implicit type information is hidden in calls to 2021-04-02T00:14:16Z jcowan: primops such as in e.g. addition, which demands that both its operands are numbers. Note that non-trivial types for arguments and return values for all primops and [built-in functions] can be known a priori by the analyzer. These types can be propagated forward in the CFG to jump-start the discrepancy analysis. For example, if a call to addition succeeds, we know for sure that the return value must be a number. We also 2021-04-02T00:14:16Z jcowan: know that, from that point forward in the CFG the arguments must be numbers as well, or else the operation would have failed. Similarly, if an addition is reached and one of its arguments has a type which the analysis has already determined is not a number, then this is a program point where a discrepancy occurs. 2021-04-02T00:14:48Z jcowan: http://user.it.uu.se/~kostis/Papers/war_story.pdf pp. 5-6 2021-04-02T00:26:00Z badkins quit (Remote host closed the connection) 2021-04-02T00:26:08Z jcowan: In particular: ordinary H-M typing will assign (define (AND x1 x2) (cond ((and (eq? x1 #t) (eq? x2 #t)) #t) ((eq? x1 #f) #f) ((eq? x2 #f) #f))) the type Bool x Bool -> Bool, whereas optimistic typing will make it Any x Any -> Bool, which is what the definition says: (AND #f 32) => #f and likewise with (AND 42 #f), but (AND 42 32) will fall off the end of the cond. 2021-04-02T00:26:32Z epony quit (Ping timeout: 240 seconds) 2021-04-02T00:27:01Z badkins joined #scheme 2021-04-02T00:28:58Z hendursa1 quit (Quit: hendursa1) 2021-04-02T00:29:26Z Oxyd: Is that assuming that eq? is of type T × T → Bool? 2021-04-02T00:29:50Z hendursaga joined #scheme 2021-04-02T00:36:25Z Zipheir: jcowan: Thanks, that's interesting. 2021-04-02T00:36:48Z jcowan: Oxyd: Yes. The actual example uses pattern matching. 2021-04-02T00:38:27Z Oxyd: Well if eq? is really like Scheme eq? then that's the wrong type. 2021-04-02T00:39:53Z Zipheir: Ugh, apparently it's impossible to ask Google for results containing "optimistic" without getting a flood of pop psychology links. 2021-04-02T00:40:33Z Zipheir: Oxyd: 'T' being any type? 2021-04-02T00:40:44Z Oxyd: Yes, but both T's being the same. 2021-04-02T00:40:49Z Zipheir: Right. 2021-04-02T00:40:57Z Oxyd: Scheme's eq? would be T × U → Bool. 2021-04-02T00:41:04Z Zipheir: Right. 2021-04-02T00:43:05Z Oxyd: And if it's some sort of throwing-eq? that will raise an exception if you give it two different types, then deducing AND to be Bool × Bool → Bool would be correct. 2021-04-02T00:43:34Z Oxyd: But then (AND #f 32) would throw and not give you #f. 2021-04-02T00:44:33Z jcowan: Oh, no, the two types are not the same. As I say, it's dynamically typed pattern matching 2021-04-02T00:44:56Z jcowan: so this is T x U -> Bool 2021-04-02T00:45:07Z jcowan: and should probably be eql? or equal?. 2021-04-02T00:45:35Z Oxyd: But then there's no reason to deduce x1 and x2 to be Bool. 2021-04-02T00:46:27Z raingloom quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-02T00:48:58Z Zipheir: Type inference in Lisp is hard. 2021-04-02T00:50:10Z Oxyd: Types are hard, but so is finding that you typed cdr instead of cadr when the error pops up five procedures away from the mistake itself. 2021-04-02T01:09:21Z notzmv quit (Ping timeout: 260 seconds) 2021-04-02T01:10:42Z badkins quit (Remote host closed the connection) 2021-04-02T01:10:53Z badkins joined #scheme 2021-04-02T01:11:15Z badkins quit (Remote host closed the connection) 2021-04-02T01:11:27Z badkins joined #scheme 2021-04-02T01:11:33Z badkins quit (Remote host closed the connection) 2021-04-02T01:12:10Z badkins joined #scheme 2021-04-02T01:16:38Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T01:28:34Z epony joined #scheme 2021-04-02T01:30:16Z klovett_ quit (Remote host closed the connection) 2021-04-02T01:30:55Z klovett joined #scheme 2021-04-02T01:55:50Z skapata quit (Remote host closed the connection) 2021-04-02T01:59:14Z frost-lab joined #scheme 2021-04-02T02:18:30Z mdhughes joined #scheme 2021-04-02T02:19:05Z malaclyps joined #scheme 2021-04-02T02:35:20Z notzmv joined #scheme 2021-04-02T02:36:15Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-02T02:36:23Z jao quit (Ping timeout: 265 seconds) 2021-04-02T02:58:01Z klovett quit (Remote host closed the connection) 2021-04-02T02:58:16Z klovett joined #scheme 2021-04-02T03:08:29Z gravicappa joined #scheme 2021-04-02T03:13:36Z badkins joined #scheme 2021-04-02T03:16:41Z notzmv quit (Ping timeout: 240 seconds) 2021-04-02T03:18:35Z badkins quit (Ping timeout: 268 seconds) 2021-04-02T03:33:56Z gzj joined #scheme 2021-04-02T03:35:19Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-02T03:39:34Z johnjay quit (Ping timeout: 268 seconds) 2021-04-02T04:07:05Z notzmv joined #scheme 2021-04-02T04:08:48Z torbo quit (Remote host closed the connection) 2021-04-02T04:13:30Z ZombieChicken joined #scheme 2021-04-02T04:30:49Z aeth quit (Ping timeout: 252 seconds) 2021-04-02T04:32:47Z aeth joined #scheme 2021-04-02T04:38:09Z skapata joined #scheme 2021-04-02T04:47:36Z matryoshka quit (Ping timeout: 246 seconds) 2021-04-02T05:14:36Z badkins joined #scheme 2021-04-02T05:22:31Z badkins quit (Ping timeout: 252 seconds) 2021-04-02T05:29:51Z johnjay joined #scheme 2021-04-02T05:41:04Z dolly joined #scheme 2021-04-02T06:28:04Z phillbush joined #scheme 2021-04-02T06:41:07Z gzj quit (Remote host closed the connection) 2021-04-02T06:45:53Z indathrone quit (Quit: Leaving) 2021-04-02T06:46:56Z civodul joined #scheme 2021-04-02T07:09:36Z skapata quit (Remote host closed the connection) 2021-04-02T07:14:48Z Aquazi joined #scheme 2021-04-02T07:19:34Z badkins joined #scheme 2021-04-02T07:23:16Z midre quit (Ping timeout: 260 seconds) 2021-04-02T07:24:01Z badkins quit (Ping timeout: 260 seconds) 2021-04-02T07:25:47Z midre joined #scheme 2021-04-02T07:30:03Z cjb quit 2021-04-02T07:30:23Z midre quit (Ping timeout: 246 seconds) 2021-04-02T07:32:59Z midre joined #scheme 2021-04-02T07:47:32Z nabla joined #scheme 2021-04-02T08:04:16Z rgherdt joined #scheme 2021-04-02T08:06:36Z hendursa1 joined #scheme 2021-04-02T08:08:41Z johnjay quit (Ping timeout: 240 seconds) 2021-04-02T08:08:43Z hendursa1 quit (Remote host closed the connection) 2021-04-02T08:09:04Z hendursa1 joined #scheme 2021-04-02T08:09:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-02T08:11:46Z johnjay joined #scheme 2021-04-02T08:24:49Z iv4nshm4k-v joined #scheme 2021-04-02T08:37:07Z Major_Biscuit joined #scheme 2021-04-02T08:39:21Z wasamasa quit (Remote host closed the connection) 2021-04-02T08:45:53Z wasamasa joined #scheme 2021-04-02T08:46:08Z aeth quit (Ping timeout: 265 seconds) 2021-04-02T08:47:38Z aeth joined #scheme 2021-04-02T08:55:07Z jeko joined #scheme 2021-04-02T08:57:44Z nikolayclfx joined #scheme 2021-04-02T09:13:04Z srandon111 joined #scheme 2021-04-02T09:19:56Z ZombieChicken quit (Remote host closed the connection) 2021-04-02T09:26:14Z lritter joined #scheme 2021-04-02T09:28:11Z notzmv quit (Ping timeout: 265 seconds) 2021-04-02T09:33:55Z frost-lab quit (Quit: Connection closed) 2021-04-02T09:35:28Z dolly quit (Quit: leaving) 2021-04-02T09:53:14Z notzmv joined #scheme 2021-04-02T09:59:57Z xsperry joined #scheme 2021-04-02T10:01:47Z jeko quit (Quit: jeko) 2021-04-02T10:02:00Z jeko joined #scheme 2021-04-02T10:24:48Z dpk: added an implementation of my comparator composition pre-SRFI https://gitlab.com/snippets/2098641/ 2021-04-02T10:43:34Z nabla quit (Quit: Connection closed) 2021-04-02T10:45:41Z aeth quit (Ping timeout: 260 seconds) 2021-04-02T10:47:17Z aeth joined #scheme 2021-04-02T10:58:32Z jeko quit (Quit: jeko) 2021-04-02T10:59:40Z iv4nshm4k-v left #scheme 2021-04-02T11:02:18Z hendursa1 quit (Remote host closed the connection) 2021-04-02T11:02:42Z hendursa1 joined #scheme 2021-04-02T11:21:25Z badkins joined #scheme 2021-04-02T11:26:07Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T11:35:02Z opFez joined #scheme 2021-04-02T11:36:25Z opFez: hello. do you guys pretty display lambda as the greek lambda letter in emacs? i think it looks nice, but want to hear if there's any negative aspects to it 2021-04-02T11:40:55Z dieggsy: opFez: I've done it in the past, but i strongly prefer no prettification now so I can just see the text exactly as is. it's cleaner/clearer that way to me. plus in e.g. racket, the lambda character actually works for lambdas, so adding a pretty lambda could be a source of confusion 2021-04-02T11:42:51Z opFez: dieggsy: i see. i've also heard that pretty lambdas mess up indentation since emacs works by looking at what is displayed, rather than the actual text, so i might turn it off 2021-04-02T11:45:06Z pflanze_ quit (Read error: Connection reset by peer) 2021-04-02T11:45:55Z pflanze joined #scheme 2021-04-02T11:49:42Z pflanze quit (Read error: Connection reset by peer) 2021-04-02T11:50:55Z pflanze joined #scheme 2021-04-02T11:51:02Z aquijoule_ quit (Ping timeout: 268 seconds) 2021-04-02T11:58:41Z dpk: a thought about if we're doing keyword arguments in R7: keyword return values should explicitly be possible and supported with appropriate syntax, as well. first, under the general principle that procedure calls and procedure returns are isomorphic in Scheme; but second because sometimes it genuinely is a pain/obscures code to remember which order return values are in, as much as it's sometimes a pain to recall which order arguments go in 2021-04-02T12:00:34Z dpk: e.g. i was thinking of adding a convenience procedure to the comparator composition one which essentially *de*composes comparators into <, <=, >, >=, and = procedures for a given type. that'd be five return values, and given their similarity, and opaqueness to the Scheme writer, it would be easier to use keywords to distinguish them than mere order 2021-04-02T12:12:41Z richbridger joined #scheme 2021-04-02T12:34:09Z cchristiansen quit (Remote host closed the connection) 2021-04-02T12:35:26Z Major_Biscuit quit (Ping timeout: 240 seconds) 2021-04-02T12:56:00Z badkins joined #scheme 2021-04-02T13:04:42Z matryoshka joined #scheme 2021-04-02T13:23:31Z jobol joined #scheme 2021-04-02T13:31:39Z wklew joined #scheme 2021-04-02T13:35:33Z jao joined #scheme 2021-04-02T13:35:39Z jao is now known as Guest39334 2021-04-02T13:36:55Z Major_Biscuit joined #scheme 2021-04-02T13:38:37Z badkins quit (Remote host closed the connection) 2021-04-02T13:39:23Z badkins joined #scheme 2021-04-02T13:44:21Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T13:46:50Z supercoven joined #scheme 2021-04-02T13:46:51Z supercoven quit (Max SendQ exceeded) 2021-04-02T13:47:05Z supercoven joined #scheme 2021-04-02T13:47:06Z supercoven quit (Max SendQ exceeded) 2021-04-02T13:47:20Z supercoven joined #scheme 2021-04-02T13:47:21Z supercoven quit (Max SendQ exceeded) 2021-04-02T13:47:35Z supercoven joined #scheme 2021-04-02T13:47:36Z supercoven quit (Max SendQ exceeded) 2021-04-02T13:47:50Z supercoven joined #scheme 2021-04-02T13:47:51Z supercoven quit (Max SendQ exceeded) 2021-04-02T13:58:58Z mdhughes: You only need two comparators, < and =, all others are just combinations or negation of those. 2021-04-02T14:00:26Z mdhughes: And I'm also opposed in general to keywords. There's probably some case where they couldn't be symbols, but mostly they could be symbols. 2021-04-02T14:09:12Z foof: (define (= a b) (not (or (< a b) (< b a)))) 2021-04-02T14:10:07Z mdhughes: That's kind of slow for the most common operation. 2021-04-02T14:14:06Z Major_Biscuit quit (Ping timeout: 240 seconds) 2021-04-02T14:15:14Z iv4nshm4k0v: The hardware ISAs I'm familiar with generally provide some form of a CMP operation which returns one of "less", "equal" or "greater." I'd rather see it available in high-level languages as well. 2021-04-02T14:15:18Z Zipheir: mdhughes: Are those generic < and =? 2021-04-02T14:15:46Z iv4nshm4k0v: Also may prove to be a tad more efficients for comparing larger strings. 2021-04-02T14:16:50Z mdhughes: CMP would be fine; but the way I know to do it is LDA foo; SUB bar; BRZ equaltag; BRC lesstag 2021-04-02T14:17:41Z mdhughes: (obviously only for register-sized ints); point is you immediately have to recompare the result, store it somewhere if you can't do it immediately. 2021-04-02T14:19:05Z badkins joined #scheme 2021-04-02T14:21:05Z Zipheir: What does that have to do with comparators, though? Low-level comparison would just be misleading for e.g. structured objects. 2021-04-02T14:21:05Z phillbush quit (Remote host closed the connection) 2021-04-02T14:21:07Z mdhughes: Maybe make a new three-lobed (ifelg test eqproc ltproc gtproc) 2021-04-02T14:21:58Z mdhughes: At higher levels it's still decomposing eventually to those. So you're going to generate comparators for 5x every field, instead of 1x or 2x? 2021-04-02T14:23:20Z Zipheir: Sure. But it will depend on the type of objects being compared. 2021-04-02T14:25:27Z opFez quit (Quit: leaving) 2021-04-02T14:26:47Z Zipheir: As Leibniz (or Martin-Löf) will tell you, equality is a subtle thing. 2021-04-02T14:30:11Z mdhughes: Or William Kent's "Data & Reality". 2021-04-02T14:30:43Z mdhughes: We do the best we can with whatever hacked-together representations suit our immediate needs. 2021-04-02T14:36:03Z Zipheir: We can, and unfortunately have. But it's also known how to implement well-founded notions of equality, so I'd like to see more of those in programming languages. 2021-04-02T14:36:25Z Zipheir: (Scheme does pretty well here, if you avoid eq?) 2021-04-02T14:42:04Z kam1 joined #scheme 2021-04-02T14:44:27Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T14:54:03Z kam1 joined #scheme 2021-04-02T14:54:27Z kam1 quit (Client Quit) 2021-04-02T14:54:43Z kam1 joined #scheme 2021-04-02T15:01:09Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T15:01:56Z jcowan: Or Quine ("no entity without identity"). Or Leibniz, for that matter ("the identity of indiscernibles and the undiscernibility of identicals") 2021-04-02T15:02:37Z jcowan: I like it that eql? comes before eq? in Chapter 6 2021-04-02T15:08:12Z Major_Biscuit joined #scheme 2021-04-02T15:15:01Z dieggsy: not trying to start a flame war - do you guys have opinions on OCaml vs Haskell? I experimented with haskell very briefly a few years ago. It was cool, but a bit hard to grok, and the tooling/build process seemed needlessly complex. I haven't used OCaml at all but it seems sort of similar? 2021-04-02T15:15:18Z dieggsy: i've just watched a brief video on it and looked at simple code examples 2021-04-02T15:15:26Z dieggsy: is either one of the two 'more schemey' 2021-04-02T15:15:35Z dieggsy: in any definition of the word 2021-04-02T15:15:35Z wasamasa: SML is the schemiest 2021-04-02T15:15:40Z wasamasa: ocaml is real world SML 2021-04-02T15:15:46Z dpk: i have heard from those with more experience than me that Standard ML is better than OCaml 2021-04-02T15:16:15Z dieggsy: 'better' in what way 2021-04-02T15:16:31Z dieggsy: wasamasa: like, just more practical to use? 2021-04-02T15:16:38Z wasamasa: mostly, yes 2021-04-02T15:16:46Z dieggsy: (a la chicken vs MIT, at least for my purposes heh) 2021-04-02T15:16:49Z wasamasa: they fixed a bunch of issues you run into when trying to use it for real-world projects 2021-04-02T15:17:01Z dieggsy: interesting 2021-04-02T15:17:06Z wasamasa: http://adam.chlipala.net/mlcomp/ 2021-04-02T15:17:08Z dpk: i've heard that OCaml's objected-oriented features feel artificially tacked on later, and OCaml tooling can be a pain to use in comparison to Standard ML tooling 2021-04-02T15:19:54Z wasamasa: I've only experimented with SML a bit, it was challenging to find suitable implementations with usable tooling 2021-04-02T15:19:58Z Zipheir: dieggsy: The serious difference is strict-by-default semantics (SML, Ocaml) vs. lazy-by-default (Haskell). 2021-04-02T15:20:06Z wasamasa: I ended up writing a convoluted build file for polyml/mlton 2021-04-02T15:20:22Z wasamasa: and would need to program without libraries, whereas ocaml would fix that 2021-04-02T15:20:29Z Zipheir: Does Ocaml have typeclasses? 2021-04-02T15:21:07Z wasamasa: there are modules/functors 2021-04-02T15:21:15Z Zipheir: Right, SML-style. 2021-04-02T15:21:28Z wasamasa: and you could use ocaml's OOP features 2021-04-02T15:22:15Z Zipheir: Yeah, my main wonder about Ocaml is how well the OO model fits with the ML-derived type system. 2021-04-02T15:22:49Z Zipheir: But I haven't used it extensively. 2021-04-02T15:23:38Z ByronJohnson quit (Ping timeout: 240 seconds) 2021-04-02T15:24:05Z wasamasa: me neither 2021-04-02T15:24:17Z wasamasa: the above link should do a good job demonstrating what exactly makes ocaml more practical 2021-04-02T15:25:05Z dieggsy: interesting 2021-04-02T15:25:24Z dieggsy: ....i'll just try it, what do i have to lose except maybe years of my life if i end up liking it 2021-04-02T15:25:25Z dieggsy: lol 2021-04-02T15:25:26Z Zipheir: Oh, it's definitely easier IME to get Ocaml up and running. SML is more Schemely than Scheme, here. 2021-04-02T15:25:52Z wasamasa: you can find my SML experimentation here: https://depp.brause.cc/mal-candidates/sml/ 2021-04-02T15:28:24Z wasamasa: something about SML is deeply elegant for sure 2021-04-02T15:29:27Z skapata joined #scheme 2021-04-02T15:29:54Z ByronJohnson joined #scheme 2021-04-02T15:30:22Z Zipheir: Except IO. 2021-04-02T15:30:38Z Zipheir: But that's true of every language. 2021-04-02T15:30:48Z wasamasa: yeah 2021-04-02T15:30:58Z wasamasa: the textio bits don't look too bad 2021-04-02T15:31:02Z Zipheir: dieggsy: The treatment of I/O is another big difference between Ocaml and Haskell. 2021-04-02T15:31:05Z wasamasa: but I had to look up how to sequence things :D 2021-04-02T15:44:31Z badkins quit (Remote host closed the connection) 2021-04-02T15:45:10Z badkins joined #scheme 2021-04-02T15:45:23Z Noisytoot left #scheme 2021-04-02T15:47:42Z Noisytoot joined #scheme 2021-04-02T15:49:31Z logand joined #scheme 2021-04-02T15:50:30Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T15:52:34Z kam1 joined #scheme 2021-04-02T15:53:04Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T15:56:27Z badkins joined #scheme 2021-04-02T16:00:20Z kam1 joined #scheme 2021-04-02T16:01:00Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T16:10:11Z badkins quit (Remote host closed the connection) 2021-04-02T16:11:55Z badkins joined #scheme 2021-04-02T16:13:25Z kam1 joined #scheme 2021-04-02T16:14:45Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T16:16:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-02T16:21:29Z kam1 joined #scheme 2021-04-02T16:25:26Z kam1 quit (Read error: Connection reset by peer) 2021-04-02T16:27:37Z wasamasa: https://gist.github.com/wasamasa/e296fc1a38d3e6026481012fecb42018 2021-04-02T16:27:52Z wasamasa: it turns out that `guile --language=elisp` is indeed powerful enough to run M-x doctor 2021-04-02T16:28:10Z wasamasa: some changes are required though 2021-04-02T16:28:39Z wasamasa: I've tested it a fair bit, but let me know if you run into a bug 2021-04-02T16:33:15Z emacsomancer quit (Read error: Connection reset by peer) 2021-04-02T16:33:56Z emacsomancer joined #scheme 2021-04-02T16:36:11Z Major_Biscuit quit (Quit: WeeChat 3.0.1) 2021-04-02T16:36:25Z emacsomancer quit (Excess Flood) 2021-04-02T16:36:58Z emacsomancer joined #scheme 2021-04-02T16:39:11Z wklew quit (Read error: Connection reset by peer) 2021-04-02T16:39:34Z wklew joined #scheme 2021-04-02T16:51:20Z dieggsy: wasamasa: are you single-handedly reviving the guile emacs dream (... i kid) 2021-04-02T16:51:32Z wasamasa: not really 2021-04-02T16:51:47Z wasamasa: I only do this because someone ragged on me on that scheme discord 2021-04-02T17:10:39Z badkins joined #scheme 2021-04-02T17:14:57Z badkins quit (Ping timeout: 252 seconds) 2021-04-02T17:24:08Z hendursa1 quit (Quit: hendursa1) 2021-04-02T17:24:25Z hendursaga joined #scheme 2021-04-02T17:26:01Z gravicappa quit (Ping timeout: 260 seconds) 2021-04-02T17:26:22Z gravicappa joined #scheme 2021-04-02T17:35:11Z Guest39334 is now known as jao 2021-04-02T17:59:25Z badkins joined #scheme 2021-04-02T18:03:54Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T18:07:33Z dieggsy: huh, there's a scheme discord? 2021-04-02T18:07:46Z dieggsy: i don't really use discord 2021-04-02T18:08:47Z amirouche: yes 2021-04-02T18:09:04Z dieggsy: is it... worth it at all? 2021-04-02T18:10:39Z badkins joined #scheme 2021-04-02T18:10:53Z amirouche: not as much conversation as here 2021-04-02T18:11:39Z bitmapper joined #scheme 2021-04-02T18:14:58Z badkins quit (Ping timeout: 240 seconds) 2021-04-02T18:43:15Z badkins joined #scheme 2021-04-02T18:47:43Z badkins quit (Ping timeout: 252 seconds) 2021-04-02T19:00:23Z shawnw joined #scheme 2021-04-02T19:11:41Z badkins joined #scheme 2021-04-02T19:13:01Z wklew quit (Ping timeout: 265 seconds) 2021-04-02T19:32:13Z Zipheir: I tried to dissuade them from starting a Discord server at the time, on the grounds that Discord is no friend of privacy or open-source software. 2021-04-02T19:33:05Z cantstanya quit (Remote host closed the connection) 2021-04-02T19:33:52Z Zipheir: And, of course, because we already have this fine IRC channel. :) 2021-04-02T19:34:09Z cantstanya joined #scheme 2021-04-02T19:51:50Z aeth: Plus, if you're old enough (and it's not really that old), you know that the internet is littered with the corpse of proprietary chats that come and go in popularity. 2021-04-02T19:51:57Z aeth: Honestly, I would have bet on Discord dying by now. 2021-04-02T19:52:22Z aeth: Sure, do game chats there or whatever. Game servers tend not to last very long, either. Serious stuff on Discord, though? That's ridiculous. 2021-04-02T19:53:37Z aeth: Good software takes years/decades to mature so why would you want to change the chat platform 3 times before you finish? 2021-04-02T19:53:53Z aeth: (And lose logs!) 2021-04-02T19:54:40Z evdubs quit (Remote host closed the connection) 2021-04-02T19:55:02Z evdubs joined #scheme 2021-04-02T19:57:52Z gwatt: I've read about companies using discord over slack 2021-04-02T19:58:36Z gwatt: s/over/instead of/ 2021-04-02T20:00:18Z aeth: which is ridiculous because Discord owns the logs (and has a terrible search, too, so you're not going to even be able to go through the logs well) 2021-04-02T20:00:24Z aeth: unless you break the rules and use a third party client 2021-04-02T20:00:52Z gwatt: Is slack honestly better? or lync, or whatever? 2021-04-02T20:00:56Z aeth: At least most proprietary chats back in the day ran in gaim/pidgin 2021-04-02T20:01:07Z aeth: I'm guessing Slack lets the company keep the logs because it's aimed at enterprises 2021-04-02T20:01:56Z gwatt: I wouldn't bet on that. 2021-04-02T20:04:03Z aeth: How would you even manage an organization if your only access to the text is with a search as bad as Discord offers? And scrolling up takes forever because it loads it from the internet (and unloads the newer parts! as if you had 1 MB RAM! so it'll load again scrolling down!) 2021-04-02T20:04:59Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-02T20:06:49Z gwatt: I haven't really tried to search through discord or slack that much tbh. 2021-04-02T20:21:25Z jcowan: I have always thought the promise of searching logs isn't that useful most of the time. 2021-04-02T20:23:22Z gwatt: I think the most common search I've ever seen is "Hey, what was that thing you posted?" because it's easier to ask the person to repeat what they did than look up anything 2021-04-02T20:23:39Z gwatt: applies to chat/email. 2021-04-02T20:27:27Z Zipheir: Well, if there's to be no searching of logs of a chat service, then there'd better be NO logs (i.e. messages are encrypted and go into some black hole). The worst of all possible worlds is (a) you can't search the logs, and (b) the server-owner can. 2021-04-02T20:27:36Z Zipheir: s/server/service/ 2021-04-02T20:28:24Z badkins quit (Remote host closed the connection) 2021-04-02T20:28:55Z badkins joined #scheme 2021-04-02T20:30:39Z friscosam: In the case of Slack search is not being sold to the engineers, it's being sold to legal and security. 2021-04-02T20:31:09Z friscosam: and overworked IT admins 2021-04-02T20:32:11Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-02T20:33:01Z friscosam: (lumping HR into legal there.) 2021-04-02T20:33:26Z Thunderbi is now known as nckx 2021-04-02T20:34:09Z wklew joined #scheme 2021-04-02T20:37:41Z badkins quit (Ping timeout: 268 seconds) 2021-04-02T20:40:45Z cybersyn joined #scheme 2021-04-02T20:44:12Z cybersyn: depending on the exercises, sometimes it takes me an entire day to work through a block of exercises in sicp. is that normal? 2021-04-02T20:47:21Z aeth: jcowan: probably 80% of my IRC log searches are for URLs that I remember being linked to but that I didn't bookmark 2021-04-02T20:47:27Z aeth: Maybe more than 80%. 2021-04-02T20:47:42Z aeth: Just a simple grep for https:// since there aren't that many (and now this line becomes a false positive!) 2021-04-02T20:48:21Z wklew quit (Read error: Connection reset by peer) 2021-04-02T20:48:35Z wklew joined #scheme 2021-04-02T20:53:53Z Zipheir: cybersyn: Given that a few of the exercises are massive projects ("Implement a compiler for Scheme"), that may be pretty fast. 2021-04-02T20:54:27Z Zipheir: cybersyn: I'd suggest not worrying about it. If you have any questions, feel free to put them here. 2021-04-02T21:10:15Z dpk: i mean, the problem sets in SICP were infamous for their time demands on new undergraduates, when it was used as an intro CS testbook 2021-04-02T21:10:18Z dpk: *textbook 2021-04-02T21:12:58Z Zipheir: Indeed. I can't imagine trying to do SICP and 4 or 5 other classes at once. 2021-04-02T21:34:46Z srandon111 quit (Quit: leaving) 2021-04-02T21:45:23Z rmrfchik quit (Remote host closed the connection) 2021-04-02T21:45:42Z rmrfchik joined #scheme 2021-04-02T21:49:16Z Zenton joined #scheme 2021-04-02T21:58:23Z badkins joined #scheme 2021-04-02T22:01:34Z cybersyn: dpk & zipheir, thanks for the encouragement. I'm only moving into chapter three after working through it rather seriously a few times a week, and was feeling a bit discouraged. there are a few "sicp is actually not that tough", and as someone who has worked through a few category theory textbooks, my reaction was just like, damn, no some of these exercises will take me three days to solve. 2021-04-02T22:04:48Z X-Scale: cybersyn: and there is also #sicp 2021-04-02T22:13:48Z rmrfchi joined #scheme 2021-04-02T22:15:58Z rmrfchik quit (Ping timeout: 240 seconds) 2021-04-02T22:21:26Z cjb joined #scheme 2021-04-02T22:22:20Z jobol quit (Quit: Leaving) 2021-04-02T22:32:36Z rgherdt quit (Remote host closed the connection) 2021-04-02T22:33:01Z rgherdt joined #scheme 2021-04-02T22:39:06Z Programmosaurus is now known as vv8 2021-04-02T22:40:45Z badkins quit (Remote host closed the connection) 2021-04-02T22:43:56Z aeth_ joined #scheme 2021-04-02T22:43:59Z lritter quit (Quit: Leaving) 2021-04-02T22:44:31Z aeth quit (Disconnected by services) 2021-04-02T22:44:36Z aeth_ is now known as aeth 2021-04-02T22:45:20Z badkins joined #scheme 2021-04-02T22:46:37Z cjb quit (Read error: Connection reset by peer) 2021-04-02T22:47:51Z cjb joined #scheme 2021-04-02T22:50:31Z badkins quit (Ping timeout: 265 seconds) 2021-04-02T22:50:50Z TCZ joined #scheme 2021-04-02T22:58:00Z TCZ left #scheme 2021-04-02T23:01:01Z civodul quit (Ping timeout: 246 seconds) 2021-04-02T23:04:36Z badkins joined #scheme 2021-04-02T23:16:24Z rgherdt quit (Ping timeout: 246 seconds) 2021-04-02T23:27:41Z wklew quit (Ping timeout: 260 seconds) 2021-04-02T23:42:07Z badkins quit (Remote host closed the connection) 2021-04-02T23:42:46Z badkins joined #scheme 2021-04-02T23:47:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-02T23:55:32Z phillbush joined #scheme 2021-04-03T00:16:32Z cchristiansen joined #scheme 2021-04-03T00:41:00Z badkins joined #scheme 2021-04-03T00:47:01Z badkins quit (Ping timeout: 260 seconds) 2021-04-03T01:00:45Z aeth: You're not supposed to do all of the exercises in a college textbook. 2021-04-03T01:01:21Z aeth: The easier ones are there for your instructor to select a bunch, and the harder ones are for when you come back to the book a long time later. For self-study, treat it the same way imo. Do about 33% to 50% of the easier exercises, leave the harder ones for after you finish the book. 2021-04-03T01:16:51Z aeth_ joined #scheme 2021-04-03T01:18:52Z aeth quit (Ping timeout: 268 seconds) 2021-04-03T01:25:31Z Zipheir: aeth_: Well, SICP isn't your average college textbook. They clearly thought a lot about the exercises. 2021-04-03T01:26:12Z Zipheir: aeth_: But I agree with that description of most textbooks. 2021-04-03T01:27:07Z Zipheir: "Some exercises are to be tasted, ... and some few are to be chewed and digested." 2021-04-03T01:35:45Z cjb quit 2021-04-03T01:39:46Z aeth_ is now known as aeth 2021-04-03T01:41:48Z logand` joined #scheme 2021-04-03T01:42:42Z aeth_ joined #scheme 2021-04-03T01:44:13Z aeth quit (Disconnected by services) 2021-04-03T01:44:17Z aeth_ is now known as aeth 2021-04-03T01:45:29Z logand quit (Ping timeout: 265 seconds) 2021-04-03T02:29:32Z cybersyn: thanks for that advice aeth 2021-04-03T02:31:54Z cybersyn: Zipheir: this is an aspect that has been a bit difficult to estimate: which exercises are essential for grasping the next section (much of the pedagogy is in the results you need to produce) and which are there "for the diehards" so to speak 2021-04-03T02:44:21Z phillbush quit (Remote host closed the connection) 2021-04-03T03:01:41Z badkins joined #scheme 2021-04-03T03:06:18Z badkins quit (Ping timeout: 240 seconds) 2021-04-03T03:30:17Z aquijoule_ joined #scheme 2021-04-03T03:32:47Z richbridger quit (Ping timeout: 252 seconds) 2021-04-03T03:39:54Z Zipheir: cybersyn: Some were more than I wanted to deal with, especially the exercises combining side-effects and delayed evaluation. 2021-04-03T03:41:40Z Zipheir: lockywolf has spent years on SICP, and is probably the person in #scheme to ask about which (in)essential exercises. 2021-04-03T03:41:52Z Zipheir: s/which // 2021-04-03T03:42:49Z badkins joined #scheme 2021-04-03T03:46:19Z aeth quit (Ping timeout: 265 seconds) 2021-04-03T03:47:29Z badkins quit (Ping timeout: 268 seconds) 2021-04-03T03:48:04Z aeth joined #scheme 2021-04-03T03:52:44Z marusich joined #scheme 2021-04-03T04:14:28Z daviid quit (Read error: Connection reset by peer) 2021-04-03T04:16:46Z daviid joined #scheme 2021-04-03T04:20:14Z lockywolf: hm.... 2021-04-03T04:22:48Z lockywolf: it's hard to decide which exercises are non-essential. I think that is worth looking at the text of the exercises in advance and decide for yourself 2021-04-03T04:23:54Z lockywolf: cybersyn: you can find how much time each exercise took me in the report 2021-04-03T04:25:00Z lockywolf: https://icfp20.sigplan.org/details/scheme-2020-papers/2/Experience-Report-on-Solving-the-Problem-Set-of-SICP-completely- 2021-04-03T04:25:02Z rudybot: https://teensy.info/l1INPRTD1x 2021-04-03T04:29:12Z lockywolf: "sicp is actually that tough" 2021-04-03T04:48:00Z gravicappa joined #scheme 2021-04-03T04:55:19Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-03T05:06:57Z brendyyn joined #scheme 2021-04-03T05:16:33Z ZombieChicken joined #scheme 2021-04-03T05:25:32Z jao quit (Ping timeout: 268 seconds) 2021-04-03T05:44:03Z ZombieChicken is now known as SuperZombieAtomi 2021-04-03T05:44:22Z SuperZombieAtomi is now known as SuperZombieChick 2021-04-03T05:45:24Z SuperZombieChick is now known as ZombieChicken 2021-04-03T05:52:13Z siraben: Zipheir: doing SICP with other classes of similar depth sounds impossible heh 2021-04-03T05:52:18Z siraben: simultaneously that is 2021-04-03T05:52:24Z clacke: I think when people say SICP is not hard they just mean it's not inscrutable, it's well explained and you get all the tools you need to solve the exercises, not that it isn't hard work 2021-04-03T05:53:17Z siraben: lockywolf: oh had no idea you were the one that wrote that report! 2021-04-03T05:53:24Z siraben: hats off to actually doing all the exercises haha 2021-04-03T05:56:18Z clacke: it's like when someone asks me "could you make an app like this?" and I answer "sure, that's easy" "so you can do it this weekend?" "no, I need three months, but I already know exactly what to do" 2021-04-03T05:58:41Z lockywolf: I think only one problem in sicp is of the class "I don't know how to solve it". The one where they ask "can you write a probabilistic CAS" 2021-04-03T05:59:10Z lockywolf: you can say "no" and be done with it, though 2021-04-03T06:00:11Z lockywolf: in general you would have to do something like solve a graph version of the Fokker-Planck equation 2021-04-03T06:09:07Z irc0331 joined #scheme 2021-04-03T06:28:54Z indathrone joined #scheme 2021-04-03T06:29:13Z indathrone quit (Remote host closed the connection) 2021-04-03T06:32:10Z indathrone joined #scheme 2021-04-03T06:33:07Z indathrone quit (Remote host closed the connection) 2021-04-03T06:34:06Z irc0331 left #scheme 2021-04-03T06:35:07Z indathrone joined #scheme 2021-04-03T06:35:38Z klovett quit (Remote host closed the connection) 2021-04-03T06:35:53Z indathrone quit (Client Quit) 2021-04-03T06:36:16Z klovett joined #scheme 2021-04-03T06:47:17Z marusich quit (Quit: Leaving) 2021-04-03T07:01:41Z motersen quit (Remote host closed the connection) 2021-04-03T07:06:22Z amirouche: hello #scheme :) 2021-04-03T07:07:13Z wasamasa: hello 2021-04-03T07:08:24Z codingquark_ is now known as codingquark 2021-04-03T07:10:16Z motersen joined #scheme 2021-04-03T07:12:36Z siraben: coi 2021-04-03T07:32:30Z motersen quit (Remote host closed the connection) 2021-04-03T07:32:45Z motersen joined #scheme 2021-04-03T07:34:03Z cybersyn quit (Remote host closed the connection) 2021-04-03T07:36:26Z cybersyn joined #scheme 2021-04-03T07:39:56Z badkins joined #scheme 2021-04-03T07:44:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-03T07:52:47Z ZombieChicken quit (Remote host closed the connection) 2021-04-03T08:04:49Z skapata quit (Remote host closed the connection) 2021-04-03T08:07:26Z hendursa1 joined #scheme 2021-04-03T08:08:07Z rgherdt joined #scheme 2021-04-03T08:09:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-03T08:24:10Z mdhughes: SICP is a moderately hard, but not unusually so, college Comp Sci course. I wasn't assigned SICP, I did that on my own, but it wasn't harder than the official classes (mostly C, Pascal, 8086 ASM) 2021-04-03T08:25:24Z mdhughes: I think it's just that many people never took hard college courses, so they don't like the first experience being this book commonly held by anime girls. 2021-04-03T08:27:29Z mdhughes: It's also entirely possible that college is much easier now than when I went, late '80s-'90s, and they'll *never* have experienced hard work until SICP. 2021-04-03T08:28:07Z dpk: there's SICP anime? 🤔 2021-04-03T08:28:41Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-03T08:29:48Z mdhughes: https://anime-girls-holding-programming-books.netlify.app/SICP 2021-04-03T08:30:56Z dpk: the more you know. 2021-04-03T08:31:31Z notzmv quit (Read error: Connection reset by peer) 2021-04-03T08:35:23Z gravicappa joined #scheme 2021-04-03T08:37:18Z wasamasa: https://github.com/laynH/Anime-Girls-Holding-Programming-Books/tree/master/SICP 2021-04-03T08:41:57Z dpk wonders why ‘Macro expander(s) available at run time’ is in the ‘stuff of dubious utility’ list in https://github.com/johnwcowan/r7rs-work/blob/master/ColorDockets.md 2021-04-03T08:42:20Z dpk: arguably it's fine for that to be implementation-dependent, i guess 2021-04-03T08:42:52Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-03T08:42:53Z dpk: but it would be nice to have a (scheme macro-expand) and know that an implementation which has that has both macro-expand and macro-expand-once or whatever 2021-04-03T08:43:24Z dpk: Chibi only has the former, which is a minor irritation (usually, when debugging my own macro, i want macro-expand-once) 2021-04-03T08:45:07Z dpk: ropes would be more Scheme-y than edit buffers, imo … 2021-04-03T08:45:51Z lritter joined #scheme 2021-04-03T08:46:19Z dpk: long ago in the before times, when even the red and tangerine editions were still mostly pre-SRFIs, and colours did not yet exist, i wrote extensive notes on the ballots with my reasons for accepting/rejecting each proposal. i should probably do that again 2021-04-03T08:46:48Z dpk: except it'll take even longer this time 2021-04-03T09:38:51Z logand`: what is the equivalent of (check-type x (integer 0 255)) or (check-type x (unsigned-byte 8)) in scheme? is there something like etypecase? 2021-04-03T09:40:54Z badkins joined #scheme 2021-04-03T09:45:33Z badkins quit (Ping timeout: 260 seconds) 2021-04-03T09:55:14Z dpk: SRFI 145 assumptions 2021-04-03T09:56:45Z dpk: okay, some initial notes https://wiki.dpk.io/r7rs-dockets.html 2021-04-03T09:58:25Z frost-lab joined #scheme 2021-04-03T10:15:08Z civodul joined #scheme 2021-04-03T10:32:52Z notzmv joined #scheme 2021-04-03T11:05:50Z Boarders quit (Quit: Connection closed for inactivity) 2021-04-03T11:36:33Z badkins joined #scheme 2021-04-03T11:41:05Z badkins quit (Ping timeout: 268 seconds) 2021-04-03T11:49:17Z indathrone joined #scheme 2021-04-03T12:04:25Z Aquazi joined #scheme 2021-04-03T12:08:33Z mdhughes: Or just (assert (integer? x)) (assert (> x 0)) (assert (<= x 255)) - and that's a good one to put in a simple macro 2021-04-03T12:10:56Z mdhughes: (assuming R6 or a useful R5+, no bets on where it'd be hidden in R7) 2021-04-03T12:28:00Z klovett quit (Remote host closed the connection) 2021-04-03T12:28:15Z klovett joined #scheme 2021-04-03T12:31:41Z wasamasa: that SRFI provides what's essentially assert 2021-04-03T12:31:49Z wasamasa: at least that's how I implemented the egg 2021-04-03T12:32:13Z gravicappa joined #scheme 2021-04-03T12:39:17Z wklew joined #scheme 2021-04-03T12:47:42Z civodul quit (Ping timeout: 246 seconds) 2021-04-03T12:53:48Z raingloom joined #scheme 2021-04-03T13:00:32Z cchristiansen quit (Remote host closed the connection) 2021-04-03T13:02:35Z badkins joined #scheme 2021-04-03T13:09:53Z badkins quit (Ping timeout: 265 seconds) 2021-04-03T13:13:36Z wklew quit (Ping timeout: 268 seconds) 2021-04-03T13:36:25Z frost-lab quit (Quit: Connection closed) 2021-04-03T13:47:35Z shawnw quit (Ping timeout: 246 seconds) 2021-04-03T14:06:35Z badkins joined #scheme 2021-04-03T14:07:44Z badkins quit (Remote host closed the connection) 2021-04-03T14:07:53Z badkins joined #scheme 2021-04-03T14:18:35Z wklew joined #scheme 2021-04-03T14:27:15Z jao joined #scheme 2021-04-03T14:29:44Z badkins quit (Remote host closed the connection) 2021-04-03T14:41:10Z abralek[m] quit (Ping timeout: 268 seconds) 2021-04-03T14:43:10Z abralek[m] joined #scheme 2021-04-03T14:52:39Z badkins joined #scheme 2021-04-03T14:57:40Z Zipheir: How SICP became the favorite book of anime girls everywhere is beyond me. 2021-04-03T14:58:11Z `micro quit (Remote host closed the connection) 2021-04-03T15:07:45Z abralek[m] quit (Read error: Connection reset by peer) 2021-04-03T15:09:20Z abralek[m] joined #scheme 2021-04-03T15:12:12Z shawnw joined #scheme 2021-04-03T15:14:35Z brendyyn quit (Ping timeout: 265 seconds) 2021-04-03T15:15:53Z abralek[m] quit (Read error: Connection reset by peer) 2021-04-03T15:18:14Z abralek[m] joined #scheme 2021-04-03T15:34:18Z raingloom quit (Ping timeout: 240 seconds) 2021-04-03T15:36:13Z `micro joined #scheme 2021-04-03T15:43:44Z jao quit (Remote host closed the connection) 2021-04-03T15:55:19Z raingloom joined #scheme 2021-04-03T15:57:02Z civodul joined #scheme 2021-04-03T16:01:47Z mdhughes: Chez> (assert (zero? 1)) 2021-04-03T16:01:47Z mdhughes: Exception: failed assertion (zero? 1) 2021-04-03T16:02:03Z mdhughes: SRFI-145 doesn't do that, you have to write a bunch of boilerplate for each test. 2021-04-03T16:07:14Z abralek[m] quit (Read error: Connection reset by peer) 2021-04-03T16:07:16Z mdhughes: If I run that in Chibi, I get: ERROR in fatal-error on line 9: car: not a pair: 0 2021-04-03T16:07:42Z mdhughes: Which is pretty much the most obnoxiously unuseful message someone could ever print. 2021-04-03T16:08:28Z mdhughes: Did anyone even, like, use an assert in a real language before writing that? 2021-04-03T16:08:46Z wasamasa: the SRFI-145 specification is very strange and permits that particular implementation 2021-04-03T16:09:26Z wasamasa: if some value is not truthy, raise an error unless in release mode, for example by taking the car of zero :D 2021-04-03T16:09:53Z mdhughes: Yes, but what I want is the quoted expression. Which bizarrely, it generates, but then throws away. 2021-04-03T16:10:25Z mdhughes: And this all comes from R7 not having a proper exception system. 2021-04-03T16:10:38Z Zipheir: mdhughes: If you define the symbol debug and provide an error message, you'll get more useful output. The (car 0) path is for non-debug runtime, apparently. 2021-04-03T16:10:54Z wasamasa: you need to define the debug feature 2021-04-03T16:10:59Z abralek[m] joined #scheme 2021-04-03T16:11:29Z Zipheir: mdhughes: You're welcome to go write a SRFI for assert. 2021-04-03T16:12:01Z mdhughes: I don't need one, it already exists in R6RS, and works. 2021-04-03T16:12:46Z mdhughes: … I've had a nice Bloody Mary for breakfast, and I'm trying to be mellow, so I'm not gonna get more precise about my opinion of this nonsense. 2021-04-03T16:14:55Z Zipheir: IMO assertions are, in any case, a kludge around the compiler/interpreter having too little information to detect our bad assumptions. 2021-04-03T16:16:10Z mdhughes: The compiler is a dumb machine. It can only do what it's told to. You either do that at the receive point, by enforcing pre/post conditions, or pile shit up everywhere in your code hoping a tracing compiler will take 4 hours to grind out your program with those equivalent assertions. 2021-04-03T16:16:11Z Zipheir: The main advantage of SRFI 145 that I can see is that (assume ...) can be made to expand to nothing. 2021-04-03T16:16:55Z mdhughes: It doesn't expand to nothing, it expands to taking car of 0. Nothing is worse, in that it'd fail to check pre/post conditions. 2021-04-03T16:17:59Z mdhughes: "Let's be totally safe in our nice debugging arena, but WOO LADDY NO LIMITS when we're in prod!" is not a good way to live. 2021-04-03T16:18:07Z Zipheir: I guess the sample implementation doesn't do that, unfortunately. 2021-04-03T16:18:15Z badkins quit (Remote host closed the connection) 2021-04-03T16:18:25Z Zipheir: mdhughes: It sounds like you're feeling sort of anti-mellow. 2021-04-03T16:18:39Z mdhughes: I'm only tryin'. 2021-04-03T16:18:50Z badkins joined #scheme 2021-04-03T16:20:11Z aeth quit (Ping timeout: 240 seconds) 2021-04-03T16:22:27Z aeth joined #scheme 2021-04-03T16:23:42Z badkins quit (Ping timeout: 265 seconds) 2021-04-03T16:28:01Z badkins joined #scheme 2021-04-03T16:31:23Z mdhughes: OK, I'm off to a happy land where there's no computers for a while. 2021-04-03T16:32:02Z X-Scale: not even smartphones ? 2021-04-03T16:34:34Z Zipheir: A happy land with smartphones can't be too happy. :) 2021-04-03T16:39:33Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-03T16:40:31Z gravicappa joined #scheme 2021-04-03T16:50:20Z badkins quit (Remote host closed the connection) 2021-04-03T16:51:00Z badkins joined #scheme 2021-04-03T16:55:09Z raingloom quit (Ping timeout: 250 seconds) 2021-04-03T16:56:05Z badkins quit (Ping timeout: 265 seconds) 2021-04-03T17:00:09Z aeth: no computers? 2021-04-03T17:00:11Z badkins joined #scheme 2021-04-03T17:00:20Z aeth: I guess Alaska 2021-04-03T17:00:36Z aeth: (outside of the settlements) 2021-04-03T17:13:32Z badkins quit (Remote host closed the connection) 2021-04-03T17:58:32Z klovett quit (Remote host closed the connection) 2021-04-03T17:59:21Z klovett joined #scheme 2021-04-03T18:04:07Z raingloom joined #scheme 2021-04-03T18:07:13Z jao joined #scheme 2021-04-03T18:19:42Z aeth quit (Ping timeout: 265 seconds) 2021-04-03T18:20:51Z klovett quit (Remote host closed the connection) 2021-04-03T18:21:10Z klovett joined #scheme 2021-04-03T18:21:19Z aeth joined #scheme 2021-04-03T18:43:25Z skapata joined #scheme 2021-04-03T18:48:41Z shawnw quit (Ping timeout: 240 seconds) 2021-04-03T19:01:30Z TCZ joined #scheme 2021-04-03T19:05:27Z sm2n quit (Ping timeout: 240 seconds) 2021-04-03T19:09:48Z sm2n joined #scheme 2021-04-03T19:11:19Z s-video joined #scheme 2021-04-03T19:27:43Z sm2n quit (Remote host closed the connection) 2021-04-03T19:28:02Z sm2n joined #scheme 2021-04-03T19:40:53Z jcowan: There is a SRFI for assert and another one for warning, but they are not part of R7RS until the Yellow Docket (we are very close to voting on the preceding dockets 2021-04-03T19:40:57Z jcowan: ) 2021-04-03T19:42:27Z phillbush joined #scheme 2021-04-03T19:43:34Z izh_ joined #scheme 2021-04-03T19:47:16Z jcowan: self-correction: they are not yet a SRFI; the pre-SRFI is at https://github.com/johnwcowan/r7rs-work/blob/master/AssertionsWarnings.md 2021-04-03T19:49:36Z jcowan: srfi 145 is assume, which has "is an error" semantics rather than "signals an assertion object" 2021-04-03T19:51:29Z s-video quit (Ping timeout: 258 seconds) 2021-04-03T20:06:22Z s-video joined #scheme 2021-04-03T20:19:05Z s-video quit (Ping timeout: 265 seconds) 2021-04-03T20:26:20Z cchristiansen joined #scheme 2021-04-03T20:30:19Z TCZ left #scheme 2021-04-03T20:30:47Z s-video joined #scheme 2021-04-03T20:34:48Z indathrone quit (Ping timeout: 258 seconds) 2021-04-03T20:35:42Z s-video quit (Remote host closed the connection) 2021-04-03T20:35:58Z s-video joined #scheme 2021-04-03T20:47:36Z gravicappa quit (Ping timeout: 265 seconds) 2021-04-03T20:50:51Z jeko joined #scheme 2021-04-03T20:54:49Z izh_ quit (Quit: Leaving) 2021-04-03T20:54:51Z s-video quit (Ping timeout: 268 seconds) 2021-04-03T21:01:21Z ech joined #scheme 2021-04-03T21:15:06Z indathrone joined #scheme 2021-04-03T21:34:41Z wklew quit (Ping timeout: 240 seconds) 2021-04-03T21:38:31Z mdhughes: So in some years there'll be an underspecified equivalent for R7, great. 2021-04-03T21:39:13Z jcowan: All specs, like any other contract, are underspecified. 2021-04-03T21:39:25Z jcowan: they are what users and implementers agree on 2021-04-03T21:42:45Z motersen quit (Ping timeout: 240 seconds) 2021-04-03T21:43:37Z Zipheir: The R6 and R6-in-R7 Schemes will continue to have the R6 assert, in any case. 2021-04-03T21:45:58Z motersen joined #scheme 2021-04-03T21:46:03Z s-video joined #scheme 2021-04-03T21:53:08Z s-video quit (Ping timeout: 252 seconds) 2021-04-03T22:08:21Z nckx is now known as jorts 2021-04-03T22:14:25Z Zenton quit (Read error: Connection reset by peer) 2021-04-03T22:14:55Z Zenton joined #scheme 2021-04-03T22:24:52Z wklew joined #scheme 2021-04-03T22:28:06Z s-video joined #scheme 2021-04-03T22:33:17Z wklew quit (Ping timeout: 246 seconds) 2021-04-03T22:41:43Z lritter quit (Quit: Leaving) 2021-04-03T22:42:06Z badkins joined #scheme 2021-04-03T22:46:11Z wklew joined #scheme 2021-04-03T22:50:24Z s-video quit (Ping timeout: 245 seconds) 2021-04-03T22:50:54Z s-video joined #scheme 2021-04-03T22:52:41Z bitmapper joined #scheme 2021-04-03T22:52:46Z wklew quit (Ping timeout: 240 seconds) 2021-04-03T22:59:16Z vv8 quit (Read error: Connection reset by peer) 2021-04-03T23:21:33Z rgherdt quit (Ping timeout: 246 seconds) 2021-04-03T23:22:49Z jeko quit (Quit: jeko) 2021-04-03T23:23:49Z mdhughes_ joined #scheme 2021-04-03T23:25:46Z mdhughes quit (Ping timeout: 258 seconds) 2021-04-03T23:27:38Z mdhughes joined #scheme 2021-04-03T23:29:41Z badkins quit (Remote host closed the connection) 2021-04-03T23:30:10Z badkins joined #scheme 2021-04-03T23:30:22Z mdhughes_ quit (Ping timeout: 258 seconds) 2021-04-03T23:33:01Z phillbush quit (Ping timeout: 260 seconds) 2021-04-03T23:34:16Z mdhughes_ joined #scheme 2021-04-03T23:34:32Z badkins quit (Ping timeout: 246 seconds) 2021-04-03T23:35:03Z jorts is now known as nckx 2021-04-03T23:36:53Z mdhughes quit (Ping timeout: 258 seconds) 2021-04-03T23:38:48Z s-video quit (Ping timeout: 258 seconds) 2021-04-03T23:39:14Z s-video joined #scheme 2021-04-03T23:41:46Z badkins joined #scheme 2021-04-03T23:41:51Z civodul quit (Ping timeout: 246 seconds) 2021-04-03T23:42:44Z mdhughes_ is now known as mdhughes 2021-04-03T23:44:52Z mdhughes: (if you have leave/join visible, you get to see every time I edit my network config!) 2021-04-03T23:44:56Z s-video quit (Ping timeout: 258 seconds) 2021-04-03T23:57:24Z s-video joined #scheme 2021-04-04T00:00:33Z phillbush joined #scheme 2021-04-04T00:04:09Z Khisanth quit (Ping timeout: 250 seconds) 2021-04-04T00:04:40Z dieggsy: so i've got an imperative sieve of eratosthenes here: https://paste.dieggsy.com/2021-04-03T20:04:46 2021-04-04T00:04:47Z dieggsy: .....i've been thinking about how i might make that functional 2021-04-04T00:04:50Z dieggsy: and i'm rather stumped 2021-04-04T00:05:07Z dieggsy: i've looked online, but most examples i've found are in languages i don't really follow lol 2021-04-04T00:05:17Z dieggsy: ...any clues would be useful 2021-04-04T00:05:23Z dieggsy: this isn't like homework or anything just funsies 2021-04-04T00:05:47Z dieggsy: been out of school a while anyway lol 2021-04-04T00:08:12Z dieggsy: i was thinking of using a list instead of a vector (which would be slower, but something like vector-map is internally 'impure' i guess) and somehow? mapping over that list to produce a new list with the marked multiples 2021-04-04T00:08:55Z Zipheir: dieggsy: SICP does it with streams https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book-Z-H-24.html#%_idx_3844 2021-04-04T00:09:35Z dieggsy: Zipheir: ah shit. damn it. i've been putting off getting through SICP FAR too long 2021-04-04T00:09:50Z Zipheir: It's a classic application of the "list of successes" trick. 2021-04-04T00:10:01Z dieggsy: i was going through the first few chapters and it was tedious and rather lots of work for low reward but 2021-04-04T00:10:19Z dieggsy: .......i kind of /need/ to learn everything after the first few chapters lol so 2021-04-04T00:10:26Z dieggsy: maybe i can skip and find a better starting point for me 2021-04-04T00:10:37Z dieggsy: or just power through it all again 2021-04-04T00:10:42Z Zipheir: dieggsy: If you're familiar with streams that section should be easy for you. 2021-04-04T00:10:50Z dieggsy: i'm not really TBH 2021-04-04T00:11:14Z Zipheir: Oh. Well, I'd recommend that whole chapter, then. 2021-04-04T00:11:27Z dieggsy: yeah definitely 2021-04-04T00:11:33Z Zipheir: If you want to turn imperative algorithms into functional algorithms, streams are some of your best friends. 2021-04-04T00:11:49Z Zipheir: (AKA lazy lists) 2021-04-04T00:11:52Z dieggsy: Oh, interesting 2021-04-04T00:12:05Z dieggsy: i've explored lazy lists with force/delay 2021-04-04T00:12:07Z dieggsy: i think... 2021-04-04T00:12:21Z Zipheir: Right, exactly. 2021-04-04T00:12:52Z dieggsy: interesting. 2021-04-04T00:13:09Z Zipheir: SICP streams are basically just the cons of an object and a procedure which generates the cdr when called (forced). 2021-04-04T00:13:11Z dieggsy: welp, SICP round N here we go lol 2021-04-04T00:13:46Z Zipheir: Good luck. :) 2021-04-04T00:14:37Z dieggsy: there's so much knowledge in there that i know I want 2021-04-04T00:14:43Z dieggsy: want and need, but mostly just want 2021-04-04T00:15:04Z dieggsy: but i need the sort of momentum to keep it up through the tedium 2021-04-04T00:16:13Z dieggsy: Like my last run through i marked exercises 3.3-3.8 "Eeeeeh" lol 2021-04-04T00:16:27Z Zipheir: dieggsy: Maybe form a study group? There are lots of people interested in an "SICP challenge". 2021-04-04T00:16:41Z Zipheir: I'm thinking it's about time I did it again. 2021-04-04T00:17:00Z Khisanth joined #scheme 2021-04-04T00:19:08Z Zipheir looks at exercises 3.* 2021-04-04T00:20:12Z dieggsy: it's the account balance bits (assignment and local state) 2021-04-04T00:20:14Z Zipheir: Oh, the Monte Carlo stuff. 2021-04-04T00:20:20Z Zipheir: Or that. 2021-04-04T00:20:53Z dieggsy: oh wait, it's not 2021-04-04T00:21:22Z dieggsy: no yeah it is lol 2021-04-04T00:21:47Z dieggsy: yeah and the monte carlo stuff 2021-04-04T00:22:28Z badkins quit (Remote host closed the connection) 2021-04-04T00:23:00Z dieggsy: I feel like this book as a big org-mode file would be cool 2021-04-04T00:23:06Z dieggsy: anyone done that yet lol 2021-04-04T00:23:23Z dieggsy: huh https://github.com/ilmotta/sicp-org 2021-04-04T00:23:37Z Zipheir: Well, someone clearly has it in TeX https://github.com/sarabander/sicp-pdf 2021-04-04T00:24:14Z dieggsy: i'm doing the answers in an org-mode file anyway 2021-04-04T00:26:40Z badkins joined #scheme 2021-04-04T00:26:59Z frost-lab joined #scheme 2021-04-04T00:28:28Z Zipheir: I may have skipped ex. 3.5, but I remember the bank account exercises being mostly just extending the state values of the bank-account object. 2021-04-04T00:31:04Z dieggsy: yeah 2021-04-04T00:31:18Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T00:31:19Z dieggsy: there's just a good few questions where it's like hmm, pretty sure i can do that, don't want to do that 2021-04-04T00:31:26Z dieggsy: but then later exercises build on those and i'm like a shit 2021-04-04T00:32:32Z Zipheir: SICP exercises are a lot of work. 2021-04-04T00:33:17Z dsp_ is now known as dsp 2021-04-04T00:34:03Z Zipheir: I forget which exercise includes the note "A thorough answer to this exercise is probably worth a PhD.". 2021-04-04T00:34:05Z dsp: whoever whants to do SICP stuff i'm always in. i have most of the exercises from the first chapters 2021-04-04T00:34:22Z dsp: https://github.com/ramrunner/sicp-solutions 2021-04-04T00:35:36Z dsp: it is so far back in time that i need to redo the whole thing. and i would prefer to try and learn more idiomatic stuff while implementing some of them :) 2021-04-04T00:36:24Z Zipheir: Cool. 2021-04-04T00:39:26Z dsp: Zipheir: are you thining to start from 0 or chap 3 where you are? 2021-04-04T00:40:27Z Zipheir: dsp: I haven't decided to go through the book again, yet. 2021-04-04T00:41:07Z Zipheir: That's a big project and I'd like to finish several other books first. 2021-04-04T00:41:25Z sxmx quit (Quit: WeeChat 3.1) 2021-04-04T00:45:14Z dieggsy: I'm on chapter 3 2021-04-04T00:45:23Z dieggsy: and i'm kinda gonna keep going from there 2021-04-04T00:45:32Z dieggsy: but i may or may not choose to answer some questions lol 2021-04-04T00:47:02Z s-video quit (Ping timeout: 258 seconds) 2021-04-04T00:47:07Z dsp: dieggsy: i think i am interested in joining ;) ... i haven't done most of those. 2021-04-04T00:47:29Z dieggsy: like, i've just taken a look at some of the environment questinos 2021-04-04T00:47:38Z dieggsy: and they're like 'analyze what happens here using the environment model' 2021-04-04T00:47:54Z dieggsy: and i /feel/ like i can do that, but i don't feel like taking the time to write it all out etc. 2021-04-04T00:48:19Z dieggsy: i'm definitely cutting corners, but i'm more interested in... idk. whatever i'm more interested in. streams, for example lol 2021-04-04T00:49:09Z dieggsy: i'm much more interested in the practical applications/examples, things where i can do stuff and see stuff happen i guess 2021-04-04T00:49:33Z dieggsy: less so if it's more theoretical or contrived. but that's not like a rule, just depends on the question 2021-04-04T00:50:01Z dsp: yup. i see what you are saying. i don't remember the end of three a lot but the thing is afterwards you just have to write everything down to get a working interpreter (on 4) 2021-04-04T00:56:24Z dieggsy: yeah that seems uh, fun 2021-04-04T00:56:38Z dieggsy: it's exciting and terrifying 2021-04-04T00:57:57Z dsp: it's really well presented and i think you will love it. i myself have never done the logic programming and the register machine stuff afterwards... those must be fun. the evaluator is a gem. very readable 2021-04-04T00:58:01Z sxmx joined #scheme 2021-04-04T01:00:16Z dieggsy: i've always had all these little ideas of writing my own 'scheme' 2021-04-04T01:00:32Z dieggsy: but no knowledge of how to implement that, so i'm looking forward to that for sure 2021-04-04T01:04:40Z badkins joined #scheme 2021-04-04T01:10:11Z remby joined #scheme 2021-04-04T01:11:30Z badkins quit (Ping timeout: 265 seconds) 2021-04-04T01:24:41Z badkins joined #scheme 2021-04-04T01:27:53Z remby quit (Quit: Konversation terminated!) 2021-04-04T01:28:06Z remby joined #scheme 2021-04-04T01:29:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T01:31:49Z indathrone quit (Quit: Leaving) 2021-04-04T01:39:29Z logand`` joined #scheme 2021-04-04T01:43:02Z logand` quit (Ping timeout: 252 seconds) 2021-04-04T01:49:01Z cybersyn` joined #scheme 2021-04-04T01:49:13Z cybersyn quit (Remote host closed the connection) 2021-04-04T02:20:56Z phillbush quit (Quit: Leaving) 2021-04-04T02:24:55Z gf3 quit (*.net *.split) 2021-04-04T02:24:55Z woky quit (*.net *.split) 2021-04-04T02:24:55Z dozzie quit (*.net *.split) 2021-04-04T02:24:55Z stux|work quit (*.net *.split) 2021-04-04T02:24:55Z dnm quit (*.net *.split) 2021-04-04T02:25:06Z woky joined #scheme 2021-04-04T02:25:08Z dozzie joined #scheme 2021-04-04T02:25:33Z dnm joined #scheme 2021-04-04T02:25:40Z gf3 joined #scheme 2021-04-04T02:26:59Z stux|work joined #scheme 2021-04-04T02:37:26Z jao quit (Remote host closed the connection) 2021-04-04T02:44:11Z frost-lab quit (Quit: Ping timeout (120 seconds)) 2021-04-04T02:46:29Z remby quit (Ping timeout: 252 seconds) 2021-04-04T02:55:45Z mzan quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-04T02:56:29Z badkins joined #scheme 2021-04-04T02:59:04Z mzan joined #scheme 2021-04-04T03:02:15Z badkins quit (Ping timeout: 252 seconds) 2021-04-04T03:17:01Z Zipheir: dieggsy: Have you watched any of the SICP lectures? 2021-04-04T03:17:41Z dieggsy: Nope 2021-04-04T03:19:53Z Zipheir: dieggsy: I highly recommend them. Sussman and Abelson are great explainers and very entertaining, I think. 2021-04-04T03:20:40Z Zipheir: dieggsy: The youtube playlist: https://www.youtube.com/watch?v=-J_xL4IGhJA&list=PLE18841CABEA24090 2021-04-04T03:20:48Z dsp: they kick ass 2021-04-04T03:21:53Z dsp: i also love how the hp people are kinda of indifferent in the first ones and then when they start to get it by the end they go full wizard ;) 2021-04-04T03:22:14Z Zipheir: Hah, yeah. 2021-04-04T03:23:51Z dsp: also i always suspected that one of the guys there is ted tso since he was at mit at the time 2021-04-04T03:24:07Z dsp: but i don't know if he would join the class with the rest of the engineers from hp 2021-04-04T03:24:28Z s-video joined #scheme 2021-04-04T03:24:49Z Zipheir: I remember thinking that the one "executive-looking" guy in the class who says nothing but gets a surprising amount of camera time must have been some HP big wheel who was sitting in to make the company look good. Hilariously, he *immediately* understands and responds to the denotational stuff Sussman talks about in lecture 7a. 2021-04-04T03:25:19Z Zipheir: Which is probably the deepest magic of the whole thing. 2021-04-04T03:26:10Z Zipheir: Books and covers, etc. 2021-04-04T03:27:00Z dsp: yes yes i know which one you are talking about. that guy rocks!!! 2021-04-04T03:27:28Z aeth: I should rewatch that 2021-04-04T03:27:56Z dsp: in the first once i was noticing the "battle" let's say between the guy with the beard and the guy with the mustache. i thought the latter one was not getting it. but in the end he turned out to be very good too 2021-04-04T03:28:09Z dsp: but of course the beard guy is like the rockstar , first row ;) 2021-04-04T03:28:43Z dsp: and both girl engineers also kick major ass. they have very good questions. 2021-04-04T03:31:13Z Zipheir: dieggsy: You may have noticed that we get very excited about these lectures. :) 2021-04-04T03:32:31Z dsp: i mean sicp in general is just love. pure love. it's so deep and exciting and pure. i can't thank these people and mit enough for all their positivity. 2021-04-04T03:32:43Z dieggsy: Zipheir: thanks for the link 2021-04-04T03:32:54Z raingloom quit (Remote host closed the connection) 2021-04-04T03:33:39Z Zipheir: dsp: Agreed, it's great stuff. 2021-04-04T03:37:05Z remby joined #scheme 2021-04-04T03:37:41Z remby quit (Client Quit) 2021-04-04T04:02:16Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-04T04:22:41Z indathrone joined #scheme 2021-04-04T04:27:22Z wklew joined #scheme 2021-04-04T04:30:21Z zooey_ is now known as zooey 2021-04-04T04:40:38Z marusich joined #scheme 2021-04-04T04:45:41Z badkins joined #scheme 2021-04-04T04:50:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T05:10:40Z gravicappa joined #scheme 2021-04-04T05:16:13Z frost-lab joined #scheme 2021-04-04T05:25:50Z amirouche: It is a long time I did not read Riastradh. 2021-04-04T05:26:44Z jao joined #scheme 2021-04-04T05:26:45Z madage quit (Ping timeout: 240 seconds) 2021-04-04T05:29:29Z madage joined #scheme 2021-04-04T05:31:57Z ech quit (Ping timeout: 240 seconds) 2021-04-04T05:32:51Z nikolayclfx quit (Remote host closed the connection) 2021-04-04T05:36:31Z cchristiansen quit (Remote host closed the connection) 2021-04-04T05:43:57Z rgherdt joined #scheme 2021-04-04T05:44:11Z amirouche: what is the problem with continuation-base generators by MNW? 2021-04-04T05:44:42Z amirouche: outside the fact that it is incompatible with existing generators. 2021-04-04T05:50:57Z wklew quit (Ping timeout: 260 seconds) 2021-04-04T05:54:01Z Zipheir: amirouche: That's about it. 2021-04-04T05:55:26Z ZombieChicken joined #scheme 2021-04-04T05:55:43Z Zipheir: IMHO they're a little awkward. 2021-04-04T06:01:59Z jao quit (Ping timeout: 265 seconds) 2021-04-04T06:29:53Z amirouche: On one side, I like Maybe because it *looks like* because I could use it more often for error handling, but I have no proof. 2021-04-04T06:31:07Z amirouche: On the other side, continuation-based generator with procedures success and failure, avoid the an allocation.. Also Maybe-based generators will still need to rework existing generator based libraries. 2021-04-04T06:35:09Z ZombieChicken quit (Remote host closed the connection) 2021-04-04T06:36:41Z ZombieChicken joined #scheme 2021-04-04T06:39:28Z phossil joined #scheme 2021-04-04T06:52:40Z shawnw joined #scheme 2021-04-04T06:53:04Z klovett quit (Remote host closed the connection) 2021-04-04T06:54:03Z klovett joined #scheme 2021-04-04T06:57:34Z brendyyn joined #scheme 2021-04-04T07:08:05Z badkins joined #scheme 2021-04-04T07:18:56Z badkins quit (Remote host closed the connection) 2021-04-04T07:20:16Z badkins joined #scheme 2021-04-04T07:21:27Z phossil quit (Ping timeout: 260 seconds) 2021-04-04T07:23:09Z snan joined #scheme 2021-04-04T07:25:31Z badkins quit (Ping timeout: 260 seconds) 2021-04-04T07:30:49Z indathrone quit (Ping timeout: 245 seconds) 2021-04-04T07:33:57Z indathrone joined #scheme 2021-04-04T07:53:19Z s-video quit (Ping timeout: 245 seconds) 2021-04-04T07:53:53Z s-video joined #scheme 2021-04-04T07:55:40Z frost-lab quit (Quit: Connection closed) 2021-04-04T07:59:10Z badkins joined #scheme 2021-04-04T08:03:57Z badkins quit (Ping timeout: 268 seconds) 2021-04-04T08:11:25Z hendursaga joined #scheme 2021-04-04T08:13:57Z hendursa1 quit (Ping timeout: 240 seconds) 2021-04-04T08:17:27Z shawnw quit (Ping timeout: 260 seconds) 2021-04-04T08:19:41Z shawnw joined #scheme 2021-04-04T08:28:07Z s-video quit (Ping timeout: 250 seconds) 2021-04-04T08:34:21Z badkins joined #scheme 2021-04-04T08:38:47Z badkins quit (Ping timeout: 246 seconds) 2021-04-04T08:40:37Z lritter joined #scheme 2021-04-04T09:31:41Z skapata quit (Remote host closed the connection) 2021-04-04T09:43:45Z raingloom joined #scheme 2021-04-04T09:59:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-04T10:02:21Z hendursaga joined #scheme 2021-04-04T10:28:53Z ZombieChicken quit (Remote host closed the connection) 2021-04-04T10:30:45Z vv8 joined #scheme 2021-04-04T10:35:26Z badkins joined #scheme 2021-04-04T10:39:39Z webshinra quit (Remote host closed the connection) 2021-04-04T10:39:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T10:41:22Z webshinra joined #scheme 2021-04-04T11:07:47Z rgherdt quit (Remote host closed the connection) 2021-04-04T11:09:17Z rgherdt joined #scheme 2021-04-04T11:23:23Z t99 joined #scheme 2021-04-04T11:25:17Z t99: Hi all. So (equal? '(j k l) (cons 'j '(k l)) returns #t I was wondering how the equal? is implemented for quoted lists. Does it just do a shallow comparison without evaluating the list items? 2021-04-04T11:25:48Z t99: Because (equal? (list j k l) (cons 'j '(k l))) doesn't work as it tries to evaluate j, etc 2021-04-04T11:26:04Z amirouche: that is the expected result. 2021-04-04T11:27:14Z t99: yeah, I'm not questioning racket :) Just trying to figure out the evaluation rules here 2021-04-04T11:27:36Z amirouche: j is variable in the second message, not a symbol. 2021-04-04T11:28:26Z amirouche: (list j k l) will look up the value associated with variables j k l in the lexical scope. 2021-04-04T11:28:33Z amirouche: variable are not eval'ed. 2021-04-04T11:29:25Z t99: so when equal? sees a quoted list, it compares it as if all the items were quoted? 2021-04-04T11:29:49Z amirouche: yes 2021-04-04T11:29:56Z t99: gotcha, thanks! 2021-04-04T11:30:01Z amirouche: (list 'j 'k 'l) is the same as '(j k l) 2021-04-04T11:30:20Z amirouche: they are equal? 2021-04-04T11:30:26Z t99: nice, that clears things up 2021-04-04T11:30:38Z ecraven: well, they might behave differently. the first is mutable, for example 2021-04-04T11:31:31Z ecraven: t99: equal? does not evaluate anything ever. it just compares whatever it gets 2021-04-04T11:34:02Z t99: ecraven: is there a version that does evaluate? 2021-04-04T11:34:37Z ecraven: the repl does the evaluating, not any individual function.. specifically the E in R-E-P-L 2021-04-04T11:35:22Z wasamasa: procedure arguments are evaluated 2021-04-04T11:35:29Z wasamasa: then the procedure receives them 2021-04-04T11:35:34Z ecraven: so in calling (equal? (list 'j 'k 'l) '(j k l)), it needs to evaluate three things, equal? (which probably evaluates to a function), (list 'j 'k 'l) (which gets you a list with three symbols) and '(j k l) (which also is a list of three symbols) 2021-04-04T11:35:44Z wasamasa: a quoted list evaluates to itself and the list call, well, recurse on that 2021-04-04T11:35:47Z ecraven: wasamasa: but the *procedure* doesn't decide on whether or not to evaluate its arguments 2021-04-04T11:37:18Z ecraven: t99: think of it this way: in order to apply the function f in (f a b), you need to know what f, a, and b reference. that's called "evaluating". once you know those three things, you can then apply f (actually the value that f is bound to) to a and b (actually ... a and b are bound to) 2021-04-04T11:37:47Z ecraven: the function that f is bound to itself only every gets to see those values, it will never know that was bound to f, or that its parameters were called a and b. 2021-04-04T11:38:16Z t99: ecraven: yeah, I think I have a good handle on evaluation, but I somehow though equal? was special haha 2021-04-04T11:38:28Z wasamasa: you can write your own take on equal? 2021-04-04T11:38:37Z wasamasa: it's a SICP exercise 2021-04-04T11:38:43Z t99: I probably should 2021-04-04T11:39:46Z ecraven: Scheme only has very few special forms; mostly if, set!, lambda, quote 2021-04-04T11:39:59Z ecraven: all the rest are either plain functions or syntax (aka "macros") 2021-04-04T11:40:58Z ecraven: for lists, equal? probably just does (if (equal? (car a) (car b)) (equal? (cdr a) (cdr b)) 2021-04-04T11:41:01Z ecraven: #f) 2021-04-04T11:41:51Z wasamasa: a bit more than that to handle lists that don't have the same length :P 2021-04-04T11:42:23Z t99: yeah, I've been overthinking 2021-04-04T11:42:46Z ecraven: won't that be caught by comparing '() to something non-null? anyway? 2021-04-04T11:42:57Z wasamasa: can't take the car of '() 2021-04-04T11:43:09Z ecraven: ah, hehe, right 2021-04-04T11:43:43Z ecraven: t99: that's Scheme. now in other lisp dialects, things are very different. Interlisp-D had LAMBDA and NLAMBDA. using NLAMBDA, *nothing* was evaluated, so you had to evaluate whatever you wanted yourself. 2021-04-04T11:43:57Z t99: hardcore :) 2021-04-04T11:44:22Z wasamasa: picolisp has fexprs with similar behavior 2021-04-04T11:45:22Z ecraven: wasamasa: is there a way to evaluate *local* bindings at the call site? as in (let ((x 3)) (my-fexpr x)), how would you get at the value 3? 2021-04-04T11:45:35Z wasamasa: ¯\_(ツ)_/¯ 2021-04-04T11:45:50Z ecraven: I've wondered that about NLAMBDA too, but never asked anyone who actually knows 2021-04-04T11:49:54Z t99: is racket a fine scheme to play around with, or is there something else I should be looking at? 2021-04-04T11:50:11Z wasamasa: racket has evolved beyond scheme 2021-04-04T11:50:23Z ecraven: if you're just starting out, everything is fine, as long as it's mostly R7RS. 2021-04-04T11:50:32Z ecraven: if you're looking for specific libraries, things start to look different 2021-04-04T11:50:36Z wasamasa: while it has languages adhering to standards, it does depart from them at points 2021-04-04T11:50:46Z ecraven: mpair! 2021-04-04T11:50:49Z wasamasa: yeah 2021-04-04T11:50:58Z wasamasa: I learned that guile has similar behavior 2021-04-04T11:51:17Z wasamasa: when trying to port doctor.el to guile, I discovered their elisp implementation is very strict about mutating conses and fails on literals 2021-04-04T11:51:20Z wasamasa: elisp doesn't though 2021-04-04T11:52:16Z t99: Curious, are there any lisp dialects that doesn't have pairs, but only lists? So a "pair" would be just a list of two items. By list, I mean consequtive in memory like an array. 2021-04-04T11:52:23Z wasamasa: clojure 2021-04-04T11:52:30Z t99: ah! 2021-04-04T11:52:41Z t99: Is that fine or frowned upon? 2021-04-04T11:52:53Z wasamasa: well, it forces you to engineer things differently 2021-04-04T11:53:04Z wasamasa: in clojure you instead rely heavily on lazy sequences and iterators 2021-04-04T11:53:19Z wasamasa: so all sequence types implement pair-like behavior 2021-04-04T11:53:30Z t99: oh interesting 2021-04-04T11:53:51Z wasamasa: you can obtain the current item, the remainder part and advance the sequence 2021-04-04T11:54:14Z wasamasa: carp does have lists at compilation time only 2021-04-04T11:54:24Z wasamasa: used for macros 2021-04-04T11:54:29Z wasamasa: otherwise you just get arrays :D 2021-04-04T11:54:53Z wasamasa: its memory management is rather static 2021-04-04T11:59:29Z t99: Are people using scheme for production stuff, or is it still mostly academic? 2021-04-04T11:59:43Z t99: I find common lisp to be so messy, although powerful 2021-04-04T11:59:46Z wasamasa: I like it for hobbyist stuff 2021-04-04T11:59:52Z wasamasa: used it for a few work projects 2021-04-04T12:00:17Z wasamasa: deploying a scheme thing looks far easier than CL to me 2021-04-04T12:00:20Z t99: i suppose there are practical issues like library availability? ffi isn't always fun 2021-04-04T12:00:48Z wasamasa: by choosing lisp you've pretty much decided to write your own libraries, lol 2021-04-04T12:00:54Z badkins joined #scheme 2021-04-04T12:00:54Z t99: haha :) 2021-04-04T12:01:05Z wasamasa: use some actually popular ecosystem if you want to avoid that 2021-04-04T12:01:54Z t99: clojure has the benefit of the java ecosystem, but it just rubs me the wrong way to see java exceptions in my lisp programs haha 2021-04-04T12:02:15Z wasamasa: it still doesn't have nearly as many libraries as java 2021-04-04T12:02:22Z wasamasa: or python or whatever else the cool kids use 2021-04-04T12:02:39Z wasamasa: you can have java exceptions in scheme, too 2021-04-04T12:02:44Z wasamasa: it's not a clojure exclusive 2021-04-04T12:05:11Z t99: yeah, I mean actual jvm exceptions :) 2021-04-04T12:05:29Z t99: I don't like exceptions anyway 2021-04-04T12:05:39Z wasamasa: you'd prefer checking error codes? 2021-04-04T12:05:41Z badkins quit (Ping timeout: 268 seconds) 2021-04-04T12:05:59Z t99: I prefer Rust/Zig style error handling, yeah 2021-04-04T12:06:32Z t99: Zig error unions are particularily elegant 2021-04-04T12:11:44Z wasamasa: time to look into ocaml/haskell then I guess 2021-04-04T12:12:52Z wasamasa: actually, SML does have exceptions, fun 2021-04-04T12:14:37Z t99: yeah i kinda like haskell 2021-04-04T12:16:08Z t99: i guess I should learn ocaml, it's used a lot 2021-04-04T12:34:41Z raingloom_ joined #scheme 2021-04-04T12:38:19Z raingloom quit (Ping timeout: 260 seconds) 2021-04-04T12:42:59Z tryte quit (Remote host closed the connection) 2021-04-04T12:43:00Z madage quit (Remote host closed the connection) 2021-04-04T12:43:13Z madage joined #scheme 2021-04-04T12:43:17Z tryte joined #scheme 2021-04-04T12:59:21Z ech joined #scheme 2021-04-04T13:15:11Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-04T13:23:35Z shawnw quit (Ping timeout: 260 seconds) 2021-04-04T13:25:57Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-04T13:26:50Z phillbush joined #scheme 2021-04-04T13:27:01Z badkins joined #scheme 2021-04-04T13:30:53Z hendursaga joined #scheme 2021-04-04T13:31:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T13:31:46Z abralek[m] quit (Ping timeout: 240 seconds) 2021-04-04T13:33:02Z abralek[m] joined #scheme 2021-04-04T13:33:11Z brendyyn quit (Ping timeout: 240 seconds) 2021-04-04T13:39:55Z abralek[m] quit (Ping timeout: 260 seconds) 2021-04-04T13:43:23Z supercoven joined #scheme 2021-04-04T13:56:31Z t99: was kinda expecting #f and '() to be equal, considering the descriptions of nil meaning both falsety and the empty list 2021-04-04T13:56:45Z phillbush quit (Quit: Leaving) 2021-04-04T13:57:09Z wasamasa: in CL, yes 2021-04-04T13:57:18Z wasamasa: but this isn't CL 2021-04-04T13:57:42Z t99: :) 2021-04-04T13:58:16Z supercoven_ joined #scheme 2021-04-04T13:58:20Z wasamasa: https://clojure.org/reference/lisps has an overview about truthiness 2021-04-04T14:00:01Z wasamasa: clojure has nil, true, false and empty sequences :D 2021-04-04T14:01:14Z t99: not yet as bad as javascript's truthy and falsy mess :) 2021-04-04T14:01:27Z supercoven quit (Ping timeout: 240 seconds) 2021-04-04T14:02:59Z amirouche: what "rib" stands for? 2021-04-04T14:03:05Z wasamasa: the sound frogs make? 2021-04-04T14:03:20Z wasamasa: rudybot: ribbit 2021-04-04T14:03:21Z rudybot: wasamasa: error: ribbit: undefined; cannot reference an identifier before its definition in module: 'program 2021-04-04T14:04:11Z aeth quit (Ping timeout: 240 seconds) 2021-04-04T14:04:18Z amirouche: such as https://gitlab.com/nieper/unsyntax/-/blob/master/src/unsyntax/program.scm#L43 2021-04-04T14:05:27Z X-Scale: I like how ANSI C just uses 0 and 1 as the result of its predicates. It helps greatly composing with the rest of arithmetic operations. No need to mix logic with boolean algebra there. 2021-04-04T14:05:41Z wasamasa: I've found make-rib in srfi-93 2021-04-04T14:06:04Z aeth joined #scheme 2021-04-04T14:06:21Z wasamasa: ;; substs are ribs or the special subst shift. a shift is added into a subst list whenever a mark is added. its presence tells the lookup routine (id->label) to shift (cdr) the marks 2021-04-04T14:07:19Z wasamasa: part of syntax.ss 2021-04-04T14:07:47Z amirouche: (: 2021-04-04T14:07:56Z amirouche: thanks a lot wasamasa 2021-04-04T14:08:07Z wasamasa: apparently related to environments 2021-04-04T14:09:13Z wasamasa: https://gitlab.com/nieper/unsyntax/-/blob/master/src/unsyntax/rib.scm#L61 2021-04-04T14:09:42Z wklew joined #scheme 2021-04-04T14:11:19Z amirouche: at least with latin jokes, it was possible to trace to origin 2021-04-04T14:11:35Z amirouche: I lookup ChezScheme code 2021-04-04T14:16:41Z badkins joined #scheme 2021-04-04T14:21:27Z badkins quit (Ping timeout: 260 seconds) 2021-04-04T14:25:47Z gravicappa joined #scheme 2021-04-04T14:29:04Z amirouche: apparantly 'rib' is shortname for... 'ribcage' or something... 2021-04-04T14:29:06Z amirouche: https://github.com/cisco/ChezScheme/blob/main/s/syntax.ss 2021-04-04T14:30:11Z wasamasa: lol 2021-04-04T14:32:33Z klovett quit (Remote host closed the connection) 2021-04-04T14:32:48Z klovett joined #scheme 2021-04-04T14:33:21Z aos quit (Quit: leaving) 2021-04-04T14:33:37Z aos joined #scheme 2021-04-04T14:34:22Z aos left #scheme 2021-04-04T14:39:49Z jao joined #scheme 2021-04-04T14:46:31Z jcowan: The ribs structure indeed looks like a ribcage, but that's because the individual ribs (for bindings) "hang down" from the structure itself, which is the "spine". 2021-04-04T14:46:54Z notzmv quit (Ping timeout: 265 seconds) 2021-04-04T15:00:11Z wklew quit (Ping timeout: 260 seconds) 2021-04-04T15:02:33Z t99 quit (Ping timeout: 260 seconds) 2021-04-04T15:15:01Z Zipheir: What do people think of parameterizing an abstract structure over different "backend" implementations? e.g. (make-dictionary SYM) where SYM might be hash-table, radix-trie, list (!), etc. 2021-04-04T15:16:45Z snan: Zipheir: sounds good 2021-04-04T15:17:32Z Zipheir: Hey snan. 2021-04-04T15:18:24Z wasamasa: yeah, I ended up doing that 2021-04-04T15:18:31Z snan: Zipheir: did you see http://bugs.call-cc.org/ticket/1735 2021-04-04T15:18:48Z Zipheir: This does add a lot of complexity to each library that does it. Worse, it's duplicative complexity--the same generic mechanism has to implemented in a bunch of different places. 2021-04-04T15:18:55Z wasamasa: https://depp.brause.cc/brause.cc/wald/ 2021-04-04T15:19:04Z wasamasa: see wald.{json,nstore,sqlite}.scm 2021-04-04T15:19:19Z Zipheir: snan: Oh, that's cool. 2021-04-04T15:20:02Z snan: There's also code there 2021-04-04T15:20:20Z Zipheir: wasamasa: Using parameter objects? 2021-04-04T15:21:00Z wasamasa: each file exports a set of common procedures 2021-04-04T15:21:10Z wasamasa: there's a dynamic import in wald.scm depending on an environment variable 2021-04-04T15:21:12Z snan: Re: symbol-based backend dispatch, a disptching form can be made and reused so there's no need to reimplement that 2021-04-04T15:21:50Z Zipheir: Hmm. 2021-04-04T15:24:26Z Zipheir: Of course, if you just want to use one backend, you still pay the price for all of the dispatching. 2021-04-04T15:25:04Z Zipheir: SRFI 146 took the approach of providing two libraries, instead. 2021-04-04T15:25:47Z mdhughes: Talk of ribs just makes me hungry. 2021-04-04T15:26:16Z notzmv joined #scheme 2021-04-04T15:28:00Z Zipheir: snan: What I mean by "implemented in a bunch of different places" is that there's no way to take some random library and incorporate it into this generic scheme without rewriting it completely. 2021-04-04T15:28:16Z Zipheir: You might call this "intentional generic design". 2021-04-04T15:28:24Z Zipheir: Oops, *intensional 2021-04-04T15:28:42Z Zipheir: (As John Searle would write "intensional-with-an-s".) 2021-04-04T15:28:46Z snan: Zipheir: import it w/ a pref, then use a generic dispatcher 2021-04-04T15:29:24Z snan: The symbol could be the prefix 2021-04-04T15:31:22Z snan: (import (prefix dicts 'radix-trie-) (sym-dispatcher)) (define-sym-dispatch '(make-dictionary radix-trie)) (make-dictionary 'radix-trie) 2021-04-04T15:32:11Z badkins joined #scheme 2021-04-04T15:33:25Z Zipheir: So then calling a generic operation simply looks up the type of object and dispatches to a structure-specific procedure? 2021-04-04T15:33:27Z snan: (define-sym-dispatch '((make-dictionary radix-trie))) even 2021-04-04T15:34:39Z snan: Or I guess split that list, a list of procs and a list of syms 2021-04-04T15:35:40Z snan: Yeah, it defines a function in the top level that dispatches on a symbol 2021-04-04T15:35:58Z snan: Let me leave bed, go to my real kbd and I'll implement it 2021-04-04T15:36:03Z Zipheir: Right. 2021-04-04T15:36:26Z badkins quit (Ping timeout: 240 seconds) 2021-04-04T15:37:38Z Zipheir: And that doesn't require any parameterizing of the structure; you can provide different backends as different libraries, then use the generic layer to handle them all. That's nice and compositional. 2021-04-04T15:38:26Z snan: Right, and, if some library isn't conforming to this interface you can still define it by hand 2021-04-04T15:38:40Z snan: This is just a "shortcut" for those that do happen to conform 2021-04-04T15:40:14Z Zipheir: Well, it defines a typeclass. 2021-04-04T15:43:19Z snan: Right but you see what I mean, right? If some library doesn't call it foo-make-dictionary but instead calls it make-foo, you'll manually extend the dispatcher to fit that: 2021-04-04T15:43:19Z snan: (define-symbol-dispatch '(make-dictionary-skele) '(hash-table radix-trie list)) 2021-04-04T15:43:19Z snan: (define (make-dictionary sym) (case sym ((foo) make-foo) (else (make-dictionary-skele sym)))) 2021-04-04T15:45:02Z Zipheir: Yes. 2021-04-04T15:45:42Z Zipheir: My point is that the dispatch stuff is independent of the libraries providing the structures. 2021-04-04T15:46:40Z Zipheir: I guess I'm not making it clear what the original question was about. 2021-04-04T15:47:20Z snan: I guess… I'm not the sharpest tool in the proverbial so I might be misunderstanding things here 2021-04-04T15:47:27Z amirouche: why not generics? 2021-04-04T15:47:43Z Zipheir: No, no, I just didn't make it clear. 2021-04-04T15:47:51Z amirouche: (define-generic make-dictionary make-hash-table) 2021-04-04T15:47:54Z snan: amirouche: I'd rather use generics here 2021-04-04T15:48:00Z snan: But it's just a fun thing to hack on, IDK 2021-04-04T15:48:57Z Zipheir: The question related to whether to build-in "pluggable backends" to a library, so that you could call (make-dictionary 'hash) and get a structure using a hash-table backend, etc. 2021-04-04T15:49:30Z Zipheir: There might be a whole other generic interface above that. But this would be a lower-level thing. 2021-04-04T15:50:09Z amirouche: idk. 2021-04-04T15:50:35Z Zipheir: My thought is that it's cleaner to implement N different versions of the library, then use a generic layer above to deal with them all. 2021-04-04T15:51:00Z amirouche: I had the same question for srfi-167, I think I will settle on: it is downstream burden :) 2021-04-04T15:51:26Z amirouche: the goal IIUC, is to be able to swap implementation when changing the symbol ? 2021-04-04T15:51:58Z Zipheir: amirouche: The goal is to be able to *choose* implementations when constructing a new object, I think. 2021-04-04T15:52:44Z Zipheir: But this is hairy. 2021-04-04T15:53:10Z badkins joined #scheme 2021-04-04T15:53:42Z amirouche: The definition you give is fullfilled with generics. The `(make-dictionary 'hash)` entice some kind of registry such as (dictionary-register 'hash mapping), but then all mapping-foobar procedures should be generic methods. 2021-04-04T15:53:53Z amirouche: no? 2021-04-04T15:55:29Z Zipheir: I think so. 2021-04-04T15:57:57Z Zipheir: For instance, SRFI 146 defines both (scheme mapping) and (scheme hashmap), which are two different libraries for two different implementations. If you want to work with them generically, you need another layer on top. With the "pluggable backend" approach, there would be one library and the mapping constructors would instead take a symbol describing which backend to use. 2021-04-04T15:58:40Z amirouche: the part where one make a dictionary with a symbol, looks like an introspection facility. 2021-04-04T15:58:43Z amirouche: yes. 2021-04-04T15:59:20Z Zipheir: It seems like that adds abstraction at the wrong level. 2021-04-04T16:00:31Z amirouche: there is two parts 0) dispatch according to type, solved by generics 1) answer the question: which datastructure follow that "protocol" eg. 'hash 2021-04-04T16:02:02Z Zipheir: "answer the question"? 2021-04-04T16:03:14Z amirouche: yeah, like (make-dictionary 'hash) returns the constructore for a dictionary that use a hash. 2021-04-04T16:03:37Z amirouche: unlike say (make-dictionary 'binary-tree) 2021-04-04T16:03:38Z Zipheir: Ah, yeah. 2021-04-04T16:03:46Z Zipheir: Right, so those are the two approaches. 2021-04-04T16:04:33Z snan: Zipheir: https://ellen.idiomdrottning.org/symbol-dispatcher.scm.txt 2021-04-04T16:05:01Z hive-mind quit (Remote host closed the connection) 2021-04-04T16:06:02Z Zipheir: snan: Nice work. 2021-04-04T16:06:05Z hive-mind joined #scheme 2021-04-04T16:06:13Z snan: So what it does is for each proc in procs it defines a unary procedure of that name that takes a symbol as argument and runs that symbol through a case to dispatch to a matching specifically imported procedure 2021-04-04T16:06:37Z snan: Again, probably generics do it better just like amirouche says 2021-04-04T16:06:48Z snan: Just saying that you don't need to reimplement the dispatching part of it 2021-04-04T16:06:50Z amirouche: generic do not work on a syntax level. 2021-04-04T16:07:02Z terpri_ quit (Remote host closed the connection) 2021-04-04T16:07:04Z amirouche: they rely on predicates to dispatch. 2021-04-04T16:07:13Z Zipheir: By "generics" we mean "type-generic", I'm guessing. 2021-04-04T16:07:15Z snan: Oh, really 2021-04-04T16:07:32Z Zipheir: ("generic programming" means a lot of different things to different people!) 2021-04-04T16:07:47Z Zipheir: snan: Yes. Even in statically-typed languages. 2021-04-04T16:08:18Z snan: So, again, the define-symbol-dispatch calls is just a shortcut to define a SICP-style/Smalltalk-style symbol case dispatcher 2021-04-04T16:08:41Z Zipheir: Right. 2021-04-04T16:09:29Z Zipheir: In principle, this should be possible to do "on top of" libraries which don't need to worry about it. 2021-04-04T16:09:52Z snan: With heavy use of (import rename) 2021-04-04T16:09:58Z Zipheir: Someone just needs to write a dictionary for their library and you can plug it in. 2021-04-04T16:10:18Z snan: Zipheir: but isn't that also the promise of genericsM 2021-04-04T16:10:21Z snan: Zipheir: but isn't that also the promise of generics? 2021-04-04T16:11:01Z snan: Feels like we're reinventing some classic OO wheels here 2021-04-04T16:11:47Z amirouche: with generics, you will need to also adjust imports, like (import (generic hash) (scheme mapping)) or (import (generic hash) (scheme hash-table)) 2021-04-04T16:11:49Z amirouche: snan: +1 2021-04-04T16:12:26Z amirouche: (maybe (import (generic hash)) is not necessary) 2021-04-04T16:13:30Z badkins quit (Remote host closed the connection) 2021-04-04T16:14:05Z badkins joined #scheme 2021-04-04T16:14:09Z Zipheir: Again, what are "generics"? There are at least two approachs. 2021-04-04T16:14:14Z Zipheir: *approaches 2021-04-04T16:14:24Z snan: This IS generics 2021-04-04T16:14:33Z snan: I mean, define-symbol-dispatch is 2021-04-04T16:14:42Z Zipheir: You mean this ARE generics. Oh, wait.. 2021-04-04T16:14:44Z snan: Just that maybe there is preexisting work here. 2021-04-04T16:14:58Z snan: Like fast-generics or whatever it's called 2021-04-04T16:15:36Z amirouche: I know only chibi's generics. 2021-04-04T16:16:01Z snan: When I first read SICP I fell in love with the symbol-based dispatching and I even wrote macrology to define CL-style multimethods on top of that. And then found out about CLOS a few weex later and ported over all my code form my homemade object system to a real one 2021-04-04T16:16:05Z Zipheir: Scheme has type-class generic programming with comparators, e.g. 2021-04-04T16:16:17Z snan: I wanted to get rid of some NIH 2021-04-04T16:18:35Z badkins quit (Ping timeout: 260 seconds) 2021-04-04T16:18:43Z Zipheir: Maybe I'll try to actually understand what I'm talking about and then bring it up again. I can't even write the type of a "constructor constructor" which takes some description of a backend implementation. 2021-04-04T16:20:59Z snan: Zipheir: re "this is" vs "this are", I thought you copula-agreed with the LHS in identity predication 2021-04-04T16:21:06Z Zipheir: Hah. 2021-04-04T16:22:06Z snan: As in, "this system" is "generics", the plural generics get downcast to an is-relation rather than an are-relation to match the singular "this system" 2021-04-04T16:22:09Z snan: uh 2021-04-04T16:22:14Z Zipheir: "You cannot defeat me, Pyuma-Man! You are just a hyuman being!" ["That's 'HOOman being'! Oh, wait..."] (MST3K) 2021-04-04T16:25:29Z X-Scale: Zipheir: does your question fit into any of this ? http://okturing.com/src/10800/body 2021-04-04T16:27:01Z Zipheir: Wow, that covers a lot of ground. 2021-04-04T16:28:31Z terpri joined #scheme 2021-04-04T16:28:36Z X-Scale: That's the new "Software Design for Flexibility: How to Avoid Programming Yourself into a Corner" book by Chris Hanson and Gerald Jay Sussman 2021-04-04T16:28:51Z snan: Kinda been disappointed with first few chapters 2021-04-04T16:28:59Z Zipheir: Cool. I haven't looked at it yet. 2021-04-04T16:29:21Z snan: But gonna take it up soon again once some of my novel editing jobs are done 2021-04-04T16:30:35Z badkins joined #scheme 2021-04-04T16:31:38Z Zipheir: I don't have a precise understanding of symbol-based dispatch, so I'd like to do some typing experiments. "The limits of my types are the limits of my world." 2021-04-04T16:34:40Z snan: I mean basically this is symbol-based dispatch: (define (foo sym) (case sym ((reset) ...make state zero...) ((inc) ... Increment state) ((dec) ... Decrement state))) it's a way to do members and methods on closures 2021-04-04T16:37:41Z snan: Or, just any kind of message-passing dispatch 2021-04-04T16:37:48Z Zipheir: Case-analysis on symbols is easy enough to formalize. 2021-04-04T16:37:58Z snan: That's basically it 2021-04-04T16:38:34Z snan: Like (define (ref sym) (case sym ((l) list-ref) ((s) string-ref))) 2021-04-04T16:38:46Z snan: With generics/multimethods you'd rather use a pred than a sym 2021-04-04T16:39:07Z Zipheir: That's where it gets harder. 2021-04-04T16:41:52Z Zipheir: I suppose that's equivalent to a dependently-typed function with a second-order type parameter: ref : ∀ T : (Type -> Type) -> ((T α) -> Integer -> α) 2021-04-04T16:43:22Z badkins quit (Ping timeout: 265 seconds) 2021-04-04T16:45:42Z t99 joined #scheme 2021-04-04T16:46:54Z Zipheir: This reminds me of Mathematics Made Difficult. It's not ring isomorphisms that are complicated; it's elementary-school multiplication. 2021-04-04T16:49:13Z aeth: Multiplication? Do you mean inverse division? At least, when you have division. 2021-04-04T16:49:35Z aeth: Integer division's constructed easily enough, you just use a division algorithm. 2021-04-04T16:50:08Z siraben: in a ring, division may not exist 2021-04-04T16:50:24Z siraben: (for that you need a field) 2021-04-04T16:50:26Z snan: (define (ref obj pos) ((if (string? obj) string-ref list-ref) obj pos)) 2021-04-04T16:50:37Z raingloom_ quit (Ping timeout: 265 seconds) 2021-04-04T16:51:02Z aeth: siraben: That's easy enough. Construct multiplication from division. Then extend the concept of multiplication to where division no longer exists. 2021-04-04T16:51:08Z phillbush joined #scheme 2021-04-04T16:52:36Z Zipheir: OK, that version is much easier. ref : (Integer → α) → Integer → α , representing strings and lists generically as partial functions. 2021-04-04T16:53:05Z snan: Zipheir: the type sig on the preceding would be (collection number -> object) I guess 2021-04-04T16:53:13Z siraben: aeth: multiplicative inverses may not be unique in a ring so you can't just define division like that 2021-04-04T16:53:26Z siraben: e.g. Z mod n where n is not prime doesn't have dividion 2021-04-04T16:53:34Z siraben: division* 2021-04-04T16:53:35Z snan: I always expected that the more I'd learn about type stuff the more I'd like it but the opposite happened 2021-04-04T16:54:29Z Zipheir: Hah. 2021-04-04T16:54:48Z Zipheir: Surely at least siraben understands my type ramblings. 2021-04-04T16:54:49Z siraben: it just so happens that Q and R are both fields so we have division that we're used to, but fields aren't that common really 2021-04-04T16:55:07Z siraben: Zipheir: what are you trying to encode? 2021-04-04T16:55:15Z Zipheir: siraben: Symbol-based dispatch. 2021-04-04T16:55:32Z siraben: oh, I think this is possible with dependent types 2021-04-04T16:55:38Z Zipheir: It is. 2021-04-04T16:55:47Z siraben: just use a type level function to decide what the return type is 2021-04-04T16:56:00Z snan: message -> function 2021-04-04T16:56:35Z siraben: forall (x : String) (l : [String, Type]), In x l → lookup x l 2021-04-04T16:56:42Z siraben: something like that 2021-04-04T16:56:57Z siraben: so it must be in the lookup table 2021-04-04T16:57:10Z siraben: then the return type depends on what the assoc list gives 2021-04-04T16:57:14Z Zipheir: Right. 2021-04-04T16:57:34Z siraben: Meant to write [(String, Type)] 2021-04-04T16:57:47Z siraben: I've seen this in idris code 2021-04-04T16:57:58Z snan: The lookup table itself is the "case" call 2021-04-04T16:57:59Z snan: uh 2021-04-04T16:58:02Z siraben: symbol based dispatch for generating CLI help medsages 2021-04-04T16:58:02Z Zipheir: That's a cool way to do it. I used a parameter of kind String -> Type (partial), but that's equivalent. 2021-04-04T16:58:07Z snan: I mean I'm saying obvious things to you guys ofc 2021-04-04T16:58:40Z siraben: Zipheir: Right. You could be doing partial functions, especially if you get the string from the user or something I guess 2021-04-04T16:58:58Z siraben: Mine would make sense where you can demonstrate the symbol is in the list 2021-04-04T16:59:10Z jcowan: snan: It's hard to tell what is standard written with nonstandard terminology/notation and what is genuinely new, especially if you don't know either way. 2021-04-04T16:59:15Z siraben: Well, just reflect from a boolean predicate should be enough evidence 2021-04-04T17:00:13Z siraben: Symbol-based dispatch is OK, IMO. I prefer case expressions of ADTs though 2021-04-04T17:01:09Z siraben: But I used symbol based dispatch (does ice-9 match count) in a Z80 assembler 2021-04-04T17:01:42Z snan: In this case it's the former, jcowan 2021-04-04T17:02:57Z snan: Or, well, I defined some of the shorthand I'm using earlier: https://idiomdrottning.org/define-ir-syntax 2021-04-04T17:03:07Z snan: Or, 2021-04-04T17:03:21Z snan: gemini://idiomdrottning.org/define-ir-syntax 2021-04-04T17:03:48Z aeth: siraben: ah, yes, fields, I like fields, especially the field that was used as the Windows XP wallpaper. 2021-04-04T17:04:02Z siraben: aeth: no those fields! 2021-04-04T17:04:04Z klovett quit (Remote host closed the connection) 2021-04-04T17:04:12Z Zipheir: "I could end up dead in a field! I hate fields..." (The World's End) 2021-04-04T17:04:20Z aeth: siraben: I never needed to do multiplication or division on it, though. 2021-04-04T17:04:26Z aeth: And I used Windows XP for years! 2021-04-04T17:04:29Z siraben: (math terminology overloads on real life stuff too much heh) 2021-04-04T17:04:50Z klovett joined #scheme 2021-04-04T17:04:52Z siraben: talk about rings, groups, categories, modules even 2021-04-04T17:05:00Z siraben: not what they sound like 2021-04-04T17:07:25Z siraben: aeth: Anyway, I hope it made sense that some rings (structures that have multiplication and addition and subtraction and the usual distributive laws) don't necessarily have multiplicative inverses 2021-04-04T17:08:17Z ChoHag: My interpreter has reached a stable but very very alpha state, and in C not perl! 2021-04-04T17:08:39Z ChoHag: If anyone wants a look it's at http://zeus.jtan.com/~chohag/lossless.pdf & http://zeus.jtan.com/~chohag/lossless.git 2021-04-04T17:09:02Z siraben: otherwise things go badly: 6*2=0 in Z12, so 0/2 = 6 if we divide both sides 2021-04-04T17:09:10Z ChoHag: So far it's a VM with practically no opcodes. 2021-04-04T17:10:06Z ChoHag: Criticism is very welcome. Especially on the English parts. 2021-04-04T17:10:44Z jcowan: Zipheir: https://github.com/johnwcowan/r7rs-work/blob/master/Dictionaries.md 2021-04-04T17:11:00Z ChoHag: Oh FFS *now* I see the dodgy grammar in the *first* paragraph... 2021-04-04T17:11:09Z jcowan: the text needs a bit of touching up, hopefully soon 2021-04-04T17:11:44Z jao quit (Remote host closed the connection) 2021-04-04T17:12:09Z jcowan: actually https://github.com/pre-srfi/dictionaries/blob/master/spec.md now 2021-04-04T17:19:11Z aeth quit (Ping timeout: 240 seconds) 2021-04-04T17:21:05Z aeth joined #scheme 2021-04-04T17:37:16Z dpk: amirouche: just checking out your webui stuff in the pre-srfi repo. looks good, although do i understand correctly from the spec that you're literally linking Facebook's React library? why not just do the DOM patching yourself? it's not especially complicated (she said, having never actually tried to implement it and having only a rough idea of how it works) 2021-04-04T17:37:33Z dpk: there's (chibi diff) you could use for diff primitives, e.g. 2021-04-04T17:38:22Z dpk: also, have you seen Elm? it's a functional language that, afaik, pioneered the virtual DOM approach — it's as baked into Elm as the IO monad is into Haskell 2021-04-04T17:38:30Z dpk: might be worth looking at for an example 2021-04-04T17:43:56Z dpk: oh. you mention Elm in the rationale 🤦🏼‍♀️ 2021-04-04T17:54:50Z skapata joined #scheme 2021-04-04T18:00:19Z klovett quit (Remote host closed the connection) 2021-04-04T18:00:36Z klovett joined #scheme 2021-04-04T18:05:28Z raingloom joined #scheme 2021-04-04T18:06:23Z gravicappa quit (Ping timeout: 260 seconds) 2021-04-04T18:08:03Z gravicappa joined #scheme 2021-04-04T18:09:56Z amirouche: The spec is better (even if incomplete) better than the code 2021-04-04T18:10:24Z amirouche: I did not try the DOM patching (webui-patch!) myself. 2021-04-04T18:10:42Z amirouche: I tried both reactjs and snabbdom 2021-04-04T18:11:18Z amirouche: Next few week, I will try preactjs, which is sort-of a drop-in replacement for facebook's react 2021-04-04T18:11:48Z amirouche: And, I do not know how difficult it would be to implement the patching algorithm. 2021-04-04T18:13:50Z abralek[m] joined #scheme 2021-04-04T18:14:20Z amirouche: there is few magical stuff happening with hooks also... that I do not know if they deserve regards or not. 2021-04-04T18:14:45Z amirouche: react hooks help, but... magic... 2021-04-04T18:15:29Z amirouche: ty for looking :) 2021-04-04T18:17:50Z snan: I've been thinking that there is kind of a lacuna for a webapp system sorta similar to elm or your webui but that doesn't create these sort of 100% client-side, just an empty frame if you don't have JS style apps 2021-04-04T18:18:03Z snan: More of an "it just uses JS to speed things up" kinda set up 2021-04-04T18:18:21Z snan: That you could still Lynx into 2021-04-04T18:18:34Z snan: Not for purps of actually promoting Lynx, just to make it easier for screenreaders&scrapers 2021-04-04T18:18:49Z s-video joined #scheme 2021-04-04T18:18:59Z aeth quit (Ping timeout: 260 seconds) 2021-04-04T18:19:52Z amirouche: I do not know about screen readers, but scrapers need to upgrade to browser automation / headless browsers. 2021-04-04T18:20:26Z amirouche: regarding lynx, it is not part of webui, put theorically, it is possible to share the view function with the backend and send that to the client. 2021-04-04T18:20:54Z aeth joined #scheme 2021-04-04T18:21:05Z amirouche: then the client with js will re-render aka. re-hydrate the DOM. 2021-04-04T18:21:05Z snan: I do use headless when required but it's a much heavier and complicated process 2021-04-04T18:21:13Z amirouche: +1 2021-04-04T18:21:17Z snan: Compared to just wget -qO- | sed 2021-04-04T18:21:58Z Zipheir: "headless browser"? 2021-04-04T18:22:25Z amirouche: FWIW, I do not plan to retreat with a browser or whatever, I only want to finish what I started, next project will rely on minifb or termbox (which is worse from the screen reader point of view) 2021-04-04T18:22:34Z snan: Most of the headless browser projects that existed like Casper etc are defunct now 2021-04-04T18:22:35Z dsp quit (Quit: leaving) 2021-04-04T18:22:36Z snan: Some exist 2021-04-04T18:23:07Z amirouche: isn't https://pptr.dev/ the replacement? 2021-04-04T18:23:08Z snan: I'm sorry, amirouche, I realize I'm slagging on your work here and that's not really what I wanted to do. I apologize 2021-04-04T18:23:39Z amirouche: snan: no worries 2021-04-04T18:23:44Z snan: Yeah, I think Puppeteer is what I was looking into switching to 2021-04-04T18:24:25Z amirouche: I tried to explain that I am not much interested in the long run to use the browsers. 2021-04-04T18:24:49Z snan: Yeah, I see 2021-04-04T18:25:03Z snan: Yeah, from a11y SSH-kiosk stuff is not good 2021-04-04T18:26:57Z amirouche: the alternatives to browsers or terminal-based GUI or minifb (DIY GUI) is GTK or QT or Tk. 2021-04-04T18:27:05Z amirouche: maybe Tk then.. 2021-04-04T18:27:08Z snan: I love CLI over TUI, so scriptable and mashupable♥ 2021-04-04T18:27:36Z amirouche: yep 2021-04-04T18:27:50Z ramrunner joined #scheme 2021-04-04T18:28:00Z amirouche: I will think about it, I am not there yet :) 2021-04-04T18:28:34Z snan: It's not that GUIs (including TUIs) don't have their place also 2021-04-04T18:28:59Z Zipheir: snan: Yeah, I've never been very happy with the TUI browsers or their implementations. 2021-04-04T18:29:05Z amirouche: that's is what a similar project that my next-project does, they have a cli, and a deamon, that interops over the filesystem. The CLI allows to do most stuff, the DAEMON helps with interactive use. 2021-04-04T18:29:35Z s-video quit (Ping timeout: 250 seconds) 2021-04-04T18:29:37Z amirouche: well, the daemon is more like a REPL in fact. 2021-04-04T18:30:01Z s-video joined #scheme 2021-04-04T18:30:21Z snan: https://hotwire.dev/ ← this! I forgot the name of this stuff and was trying to find it. I've been meaning to try to understand it because it seems like a good idea from as far as I can tell 2021-04-04T18:31:04Z ramrunner quit (Client Quit) 2021-04-04T18:31:59Z amirouche: yes, it is 2000s style apps. 2021-04-04T18:32:16Z snan: Yes! 2021-04-04T18:32:24Z dpk: i knew that one day i would be old enough to see the idea of sending HTML over HTTP become new and trendy again 2021-04-04T18:32:34Z wasamasa: lol 2021-04-04T18:32:42Z snan: Turbolinks especially seems like a way to make 2000s or even 1990s style apps good again 2021-04-04T18:32:52Z snan: Or I guess it's just called "Turbo" now 2021-04-04T18:33:00Z amirouche: the focus changed in browsers scripting, where JS is not a plugin but the primary engine and HTML serialization almost completly disappeared from the wire. 2021-04-04T18:33:31Z wasamasa: the moment I need to evaluate JS to scrape content is the moment I stop scraping 2021-04-04T18:33:37Z Zipheir: ... may the heads of those who came up with *that* idea be struck from their shoulders. 2021-04-04T18:33:39Z snan: amirouche: I know that, but, that's what sucks 2021-04-04T18:33:57Z wasamasa: low effort scraping FTW 2021-04-04T18:34:37Z snan: sed 's/"/\n/g'|grep https:// # to get all the URLs for example 2021-04-04T18:35:00Z amirouche: what sucks the most, imo, is the browser stack is not doing what it promised to do `view-source` and limited DE integration. Also, it is NIH compared to a DE you can setup on a regular distro / bsd. 2021-04-04T18:35:04Z snan: Although usually I whip out htmlprag and sxpath ♥ 2021-04-04T18:35:11Z wasamasa: whitespace, angular brackets and double quotes are URL delimiters 2021-04-04T18:35:37Z wasamasa: so weren't it for punctuation after URLs, extracting them should be easy 2021-04-04T18:35:43Z snan: wasamasa: sometimes single quotes. Obv the sed exp is tailored to the specific site 2021-04-04T18:35:47Z wasamasa: yeah 2021-04-04T18:36:09Z wasamasa: but I foresee that one day I need to do browser automation and will write an egg for that webdriver REST API 2021-04-04T18:36:13Z snan: amirouche: yeah, webasm is another huge wtf 2021-04-04T18:38:04Z snan: I really love spiffy's (or Elixir's Phoenix or so many other router-based server) ease of writing routers to urls 2021-04-04T18:38:20Z snan: The web page is the API 2021-04-04T18:39:21Z snan: amirouche: BTW lent completely backfired as per ushe 2021-04-04T18:39:26Z snan: That's what it is I guess 2021-04-04T18:39:48Z snan: Three seconds back on social media and then immediately completely addicted again 2021-04-04T18:40:06Z snan: Been basically glued to the screen for four hours now 2021-04-04T18:40:07Z badkins joined #scheme 2021-04-04T18:40:14Z Zipheir: snan: You mean, IRC? 2021-04-04T18:40:28Z snan: Zipheir: primarily IRC and secondarily Fedi 2021-04-04T18:41:06Z snan: I should stop calling it social media 2021-04-04T18:43:04Z amirouche: social media are those featured on non-social media. IRC and Fedi are not featured on non-social media ^^ 2021-04-04T18:43:27Z amirouche: let's make a non-social media that features Fedi and IRC :) 2021-04-04T18:44:24Z snan: I've so many unfinished and half-finished ideas at this point (although I did manage to finish and release 7off which was a huge project) but one thing I'd love to do eventually is to figure out how to use hotwire with Scheme 2021-04-04T18:44:39Z badkins quit (Ping timeout: 260 seconds) 2021-04-04T18:44:42Z amirouche: what is 7off? 2021-04-04T18:45:02Z snan: gemini://idiomdrottning.org/7off 2021-04-04T18:45:25Z snan: Most of the work was spent understanding and fixing stuff I ran into in lowdown 2021-04-04T18:45:38Z snan: s/work/time/ 2021-04-04T18:45:42Z snan: Uh, my English is not great 2021-04-04T18:45:45Z Zipheir: Just call the established giant Web services "antisocial media", since that seems more accurate these days. 2021-04-04T18:46:03Z snan: I usally use the word "silos" to refer to Twitter, Facebook, Insta and similar 2021-04-04T18:46:18Z snan: Uh, not to try to force my overly cutesy terminology on the rest of the world 2021-04-04T18:46:59Z Zipheir: Who do you think you are, RMS? :) 2021-04-04T18:47:37Z snan: Exactly who I was trying to not be ♥ 2021-04-04T18:47:41Z Zipheir: "Call the company 'Guber', because their drivers are paid peanuts..." 2021-04-04T18:47:45Z snan: hahaha 2021-04-04T18:49:13Z wasamasa: hm 2021-04-04T18:49:44Z wasamasa: did gemini standardize on atom feeds? 2021-04-04T18:49:48Z amirouche: silos is the term indieweb use too. 2021-04-04T18:49:51Z snan: An ex of mine would use the various RMS-coinings around the house. I don't remember all or even of them… DRM maybe. Wasn't it "Digital Restrictions Management" or similar 2021-04-04T18:49:57Z wasamasa: would be fun if you could just subscribe to them with your existing feed reader 2021-04-04T18:49:58Z snan: wasamasa: gmisub seems more popular than atom feeds 2021-04-04T18:50:29Z snan: But yeah, I have https://idiomdrottning.org/atom.xml up for gem stuff 2021-04-04T18:50:34Z wasamasa: I occasionally look at other people's gopher sites, but it never has been important enough to look into a feed reader for it 2021-04-04T18:50:52Z wasamasa: I've been asked to set up a changelog site for https://github.com/kensanata/moku-pona/ to work 2021-04-04T18:54:11Z snan: I have feeds up various for various subsets, in gmisub, twtxt, and atom 2021-04-04T18:55:09Z s-video quit (Ping timeout: 250 seconds) 2021-04-04T18:55:57Z ramrunner joined #scheme 2021-04-04T18:56:56Z amirouche: I have no feed reader, which looks rather anti-social around me. 2021-04-04T18:57:14Z amirouche: my feed reader is IRC, and sometime mastodon. 2021-04-04T18:57:32Z snan: amirouche: don't worry, I also spam everything out on Fedi 2021-04-04T18:57:47Z snan: To the constant eyerolling of all♥ 2021-04-04T18:58:08Z snan: I just left bed to write up that symbol-dispatcher and that took like 20 minutes and now I'm still here 2021-04-04T18:58:33Z snan: SMH at self and the rest of humanity for our need for company and conversation 2021-04-04T19:00:33Z snan: I've been really happy with define-ir-syntax and define-ir-syntax* 2021-04-04T19:00:38Z snan: They've been fun 2021-04-04T19:10:11Z wasamasa: there's considerably less activity in my feed reader than on mastodon 2021-04-04T19:12:15Z Zipheir: In my experience with Mastodon, there was an incredible amount of activity, but little that I actually wanted to read. 2021-04-04T19:12:31Z Zipheir: IRC seems to have higher information density. 2021-04-04T19:13:20Z snan: I guess but all the IRC channels I know about are about software stuff 2021-04-04T19:13:54Z snan: On Fedi there is no off-topic 2021-04-04T19:14:28Z Zipheir: More's the pity, IMHO. One of the great social design mistakes of Web social media was "who needs topics?". 2021-04-04T19:15:47Z snan: No that was the best thing! 2021-04-04T19:16:27Z clacke: fedi is what you make of it 2021-04-04T19:16:59Z clacke: the network doesn't have topics, but you choose what people you follow 2021-04-04T19:17:37Z Zipheir: Hashtags were clearly intended to be ad-hoc channels, but society took them in a totally different direction. 2021-04-04T19:17:37Z snan: Like, the two things that I use to define "what is social media" are both good things. 2021-04-04T19:17:38Z snan: 1. Lack of any one specific topic. 2021-04-04T19:17:38Z snan: 2. The "M"-model: I can follow A, B and C, while A can follow me, B and D and not have to deal with C 2021-04-04T19:17:41Z snan: As opposed to the room model 2021-04-04T19:17:48Z clacke: and I'm discovering that this channel is not-entirely-coincidentally full of people I follow on fedi :-D 2021-04-04T19:18:01Z snan: clacke: yeah I think you have me on there 2021-04-04T19:18:17Z snan: IIRC 2021-04-04T19:18:29Z clacke: yup, rather recently, less than half a year 2021-04-04T19:19:07Z snan: I've only been on there since September 2021-04-04T19:19:17Z snan: Or August maybe 2021-04-04T19:19:22Z Zipheir: snan: Topics are a Good Thing, even when respected in the breach (heh, e.g. this message). They keep people from rambling on about their cow-orkers or foor other tedious stuff. 2021-04-04T19:19:34Z Zipheir: s/foor/food/ 2021-04-04T19:19:35Z snan: The whole reason I went on Fedi in the first place was for Inktober (but then Inktober got cancelled) 2021-04-04T19:20:18Z snan: I was on IRC a lot in the nineties and I was in a bunch of no-topic, basically friend-group channels 2021-04-04T19:20:20Z snan: That was awesome 2021-04-04T19:20:47Z snan: I could live more easily with topics if I knew about more channels 2021-04-04T19:20:58Z Zipheir: I suppose if everyone has interesting things to talk about. 2021-04-04T19:21:11Z clacke: rambling about programming is more meaningful to me if it's from people who are also rambling about life 2021-04-04T19:21:18Z snan: clacke: same 2021-04-04T19:21:56Z clacke: I'm on #picolisp almost exclusively for the off-topic :-D 2021-04-04T19:22:47Z clacke: one day I will actually use the language 2021-04-04T19:23:56Z snan: Scheme is the part that goes at the front of the URL right? Like gemini:// and https:// and mailto: 2021-04-04T19:24:12Z snan: #scheme is great for that reason 2021-04-04T19:24:21Z clacke: Zipheir: there are fedi groups, like mailing lists, but people don't use them much 2021-04-04T19:25:14Z s-video joined #scheme 2021-04-04T19:26:22Z phossil joined #scheme 2021-04-04T19:27:39Z iv4nshm4k0v: snan: Scheme is like http: and mailto: and xmpp: ; // starts the authority, when needed. So there're http://example.com and mailto:joe@example.com, for example. 2021-04-04T19:30:53Z wasamasa: clacke: it's a nice lisp implementation for recreational programming 2021-04-04T19:31:04Z wasamasa: clacke: I'm the opposite, I only go there when I need picolisp help 2021-04-04T19:33:02Z iv4nshm4k0v: There don't seem to be lightweight enough activitypub implementations, which so far kept my interest in fediverse at rather low level. (Like, you know, "would work on a Pentium MMX" lightweight.) 2021-04-04T19:33:17Z iv4nshm4k0v currently uses sic(1) for IRC 2021-04-04T19:35:03Z Zipheir: iv4nshm4k0v: Hardcore. 2021-04-04T19:35:50Z iv4nshm4k0v: Zipheir: Well, right, I use it inside of rlwrap(1), so perhaps not as hardcore as it might've been. 2021-04-04T19:42:36Z snan: https://lobste.rs/s/ykgg1e/not_growing_language#c_ht5duy 2021-04-04T19:42:49Z snan: iv4nshm4k0v: thank you! 2021-04-04T19:42:54Z snan: So that's why file:/// 2021-04-04T19:51:27Z snan: (* 43 (- 100 (* 11 12 (quadruple 3)))) this language is so fantastic 2021-04-04T19:54:33Z Zipheir: Maybe I'm missing context, but I don't understand what's going on in that comment. 2021-04-04T19:55:15Z snan: (* 43 (- 100 (* 11 12 (quadruple 3)))) evals to "Hello, mom!" 2021-04-04T19:55:27Z snan: Without touching the * or - operators 2021-04-04T19:55:35Z snan: Only by redefining quadruple 2021-04-04T19:55:45Z dpk: iv4nshm4k0v: also feeling old because you used 'Pentium MMX' as an example of an old and underpowered machine 2021-04-04T19:56:24Z snan: My first own computer when I moved out was a Pentium MMX 2021-04-04T19:57:17Z Zipheir: Ex continuum quodlibet. 2021-04-04T19:57:33Z Zipheir: *Ex continuo ? 2021-04-04T19:58:32Z dpk: i would like to get myself a Mac II and one of the Lisp Machine NuBus cards to go with it, although i imagine the setup would cost me a pretty penny 2021-04-04T19:58:33Z snan: Zipheir: I think it's the ablative case there 2021-04-04T19:59:06Z Zipheir: Yup. 2021-04-04T19:59:12Z snan: In which case yeah, continuō 2021-04-04T19:59:16Z Zipheir: I just can't decline Latin any more. 2021-04-04T19:59:23Z snan: Hey, I had to look it up 2021-04-04T19:59:45Z snan: I googled continuum ablative latin 2021-04-04T20:02:52Z snan: dpk: I once rescued a quadra from a dumpster but I never got around to trying to boot it up 2021-04-04T20:05:25Z dpk: if you still have it, my address is on my website ;-) 2021-04-04T20:05:43Z snan: I don't, I lost all the stuff from that apt years ago 2021-04-04T20:05:57Z snan: Thank you for the offer, though 2021-04-04T20:09:18Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-04T20:19:11Z s-video quit (Ping timeout: 240 seconds) 2021-04-04T20:20:59Z iv4nshm4k0v: dpk: My first "IBM PC-compatible" was an Am386-based box, but I don't expect much support for that among still maintained systems (aside of FreeDOS.) OTOH, 486+ is claimed to be supported by NetBSD, and something like K5 feels sufficient for a good chunk of my daily needs. 2021-04-04T20:25:17Z iv4nshm4k0v: (Like webreading, IRC, email, etc.) 2021-04-04T20:50:38Z supercoven_ quit (Ping timeout: 240 seconds) 2021-04-04T21:04:04Z s-video joined #scheme 2021-04-04T21:26:14Z dieggsy: masters of regex - is there something that "(a*)|(b*)" WILL match that "(a|b)*" WON'T ? 2021-04-04T21:26:32Z dieggsy: i can come up with examples of both matching, just the second matching, or neither 2021-04-04T21:26:36Z dieggsy: but not just the first 2021-04-04T21:26:57Z dieggsy: but the book for the class i'm helping teach implies there's a case that just the first matches 2021-04-04T21:27:06Z dieggsy: ...maybe my regex-fu just isn't there 2021-04-04T21:41:56Z terpri quit (Remote host closed the connection) 2021-04-04T21:41:57Z terpri_ joined #scheme 2021-04-04T21:47:34Z dpk: they’re identical in match semantics but not submatch semantics, i think 2021-04-04T21:48:55Z dieggsy: dpk: not sure exactly what you mean by that. the second will match for example the entire string "ababab", but the first won't. both will match "aaaaaaaaaa", but only the second will match the whole string "bbbbbb" because ...uh, the empty string 2021-04-04T21:49:14Z dieggsy: i just can't come up with something that the first will match but the second wont 2021-04-04T21:50:25Z vv8 quit (Ping timeout: 260 seconds) 2021-04-04T21:52:31Z badkins joined #scheme 2021-04-04T21:53:38Z s-video quit (Ping timeout: 240 seconds) 2021-04-04T22:00:22Z raingloom quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-04T22:02:55Z dieggsy: python's re is super weird about this particular example actually 2021-04-04T22:02:57Z badkins quit (Ping timeout: 252 seconds) 2021-04-04T22:03:06Z dieggsy: irregex behaves more like i'd expect 2021-04-04T22:03:18Z fizzie: I'm reasonably sure the language described by (a*)|(b*) is a strict subset of (a|b)*, which would mean there isn't any string in the former that's not in the latter. 2021-04-04T22:03:23Z dieggsy: but i guess re.match anchors the beginning but not the end of the string 2021-04-04T22:03:38Z dieggsy: fizzie: thank you, i just wanted to mkae sure i wasn't going crazy 2021-04-04T22:04:40Z fizzie: What did you mean by "only the second will match the whole string 'bbbbbb'", though? Because both (a*)|(b*) and (a|b)* match it. 2021-04-04T22:05:12Z dieggsy: fizzie: no, you're right. that's what i was getting at about irregex vs python's re. re.match doesn't do IMO the right thing there 2021-04-04T22:05:37Z dieggsy: it returns , so it's matching the empty string 2021-04-04T22:06:02Z dieggsy: if you do re.match("^((a*)|(b*))$","bbbb") then it does 2021-04-04T22:06:17Z dieggsy: but i guess that's a peculiarity of how python is implementing match 2021-04-04T22:06:19Z dieggsy: ......awful 2021-04-04T22:07:25Z fizzie: Right, it's anchored at the front but not at the back, and an empty string is a valid match too. 2021-04-04T22:07:36Z fizzie: (There's a `re.fullmatch` for the other thing.) 2021-04-04T22:07:41Z dieggsy: oh shit 2021-04-04T22:07:55Z dieggsy: thanks for that 2021-04-04T22:14:28Z dieggsy: fizzie: i think i've used just about every other re function but fullmatch lol. and i've stared at the re docs page for YEASR lol 2021-04-04T22:53:46Z jao joined #scheme 2021-04-04T22:54:21Z aeth quit (Ping timeout: 260 seconds) 2021-04-04T22:56:12Z aeth joined #scheme 2021-04-04T23:32:15Z s-video joined #scheme 2021-04-04T23:33:27Z ZombieChicken joined #scheme 2021-04-04T23:49:54Z vv8 joined #scheme 2021-04-04T23:50:51Z indathrone quit (Quit: Leaving) 2021-04-04T23:55:57Z lritter quit (Ping timeout: 265 seconds) 2021-04-05T00:02:45Z foof: mdhughes: (import (chibi assert)) 2021-04-05T00:12:38Z acarrico quit (Ping timeout: 240 seconds) 2021-04-05T00:17:24Z acarrico joined #scheme 2021-04-05T00:25:19Z s-video quit (Ping timeout: 260 seconds) 2021-04-05T00:34:59Z s-video joined #scheme 2021-04-05T00:39:29Z gambiteer joined #scheme 2021-04-05T01:01:47Z phillbush quit (Remote host closed the connection) 2021-04-05T01:24:11Z s-video quit (Ping timeout: 240 seconds) 2021-04-05T01:24:50Z s-video joined #scheme 2021-04-05T01:37:44Z logand``` joined #scheme 2021-04-05T01:38:11Z acarrico quit (Ping timeout: 240 seconds) 2021-04-05T01:41:11Z logand`` quit (Ping timeout: 240 seconds) 2021-04-05T01:50:27Z ZombieChicken quit (Quit: WeeChat 3.1) 2021-04-05T01:51:03Z cemerick quit (Ping timeout: 258 seconds) 2021-04-05T01:56:33Z cemerick joined #scheme 2021-04-05T02:05:29Z matryoshka quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-04-05T02:06:11Z s-video quit (Ping timeout: 258 seconds) 2021-04-05T02:10:17Z s-video joined #scheme 2021-04-05T02:17:54Z s-video quit (Ping timeout: 268 seconds) 2021-04-05T02:19:13Z cchristiansen joined #scheme 2021-04-05T02:25:43Z s-video joined #scheme 2021-04-05T02:36:47Z ZombieChicken joined #scheme 2021-04-05T02:39:12Z gambiteer quit (Quit: Connection closed) 2021-04-05T02:57:12Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-05T03:07:57Z mdhughes: foof: That's nice, but not in any standard. What's the semantics, does it throw a known exception type you can reason about? 2021-04-05T03:15:43Z mdhughes: ERROR on line 1: couldn't find import: (chibi assert) 2021-04-05T03:28:56Z remby joined #scheme 2021-04-05T03:42:33Z skapata is now known as skapatov 2021-04-05T03:55:11Z t99 quit (Ping timeout: 246 seconds) 2021-04-05T04:10:53Z Noisytoot quit (Quit: ZNC 1.8.2 - https://znc.in) 2021-04-05T04:31:32Z clacke: iv4nshm4k0v: I believe, just from the statements from authors and some personal extrapolation and not from any hands-on experience, that epicyon might be worth looking at as a low-resource ActivityPub node. 2021-04-05T04:32:54Z clacke: Unfortunately I still cannot follow bob's epicyon stream from my friendica home, but Mastodon and Pleroma seem to be working well enough. 2021-04-05T04:38:17Z ba joined #scheme 2021-04-05T04:38:53Z ozzloy_ quit (Ping timeout: 252 seconds) 2021-04-05T04:38:55Z bandali quit (Ping timeout: 276 seconds) 2021-04-05T04:39:01Z ozzloy joined #scheme 2021-04-05T04:40:48Z badkins joined #scheme 2021-04-05T04:42:04Z jao quit (Remote host closed the connection) 2021-04-05T04:45:38Z badkins quit (Ping timeout: 240 seconds) 2021-04-05T05:14:51Z sz0 joined #scheme 2021-04-05T05:38:34Z abralek[m] quit (Quit: Quit) 2021-04-05T05:39:14Z abralek joined #scheme 2021-04-05T05:45:57Z cantstanya quit (Ping timeout: 240 seconds) 2021-04-05T05:52:10Z cantstanya joined #scheme 2021-04-05T05:56:01Z cantstanya quit (Remote host closed the connection) 2021-04-05T05:57:19Z cantstanya joined #scheme 2021-04-05T06:00:06Z foof: mdhughes: it's fairly recent, you'd need HEAD 2021-04-05T06:00:33Z foof: not in any standard, roughly copying oleg's assert 2021-04-05T06:02:11Z remby quit (Quit: Konversation terminated!) 2021-04-05T06:05:41Z mdhughes: "R7+" 2021-04-05T06:08:45Z phossil quit (Quit: Konversation terminated!) 2021-04-05T06:16:10Z gravicappa joined #scheme 2021-04-05T06:42:27Z badkins joined #scheme 2021-04-05T06:47:23Z badkins quit (Ping timeout: 268 seconds) 2021-04-05T06:51:14Z s-video quit (Ping timeout: 246 seconds) 2021-04-05T06:55:04Z shawnw joined #scheme 2021-04-05T07:08:11Z lockywolf: sicp has an exercise in which you write your own version of lambda, in which you explicitly mark which parameters (arguments) it expects evaluated, and which it doesn't 2021-04-05T07:08:25Z lockywolf: btw: https://icfp21.sigplan.org/home/scheme-2021#Call-for-Papers 2021-04-05T07:08:40Z lockywolf: Scheme Workshop 2021 announced 2021-04-05T07:32:48Z xelxebar joined #scheme 2021-04-05T07:33:24Z ChoHag: Trust lispy people to be unnecessarily different: All deadlines are (23:59 UTC-12), “Anywhere on Earth”. 2021-04-05T07:33:43Z ChoHag: '00:00 UTC' was too obvious? 2021-04-05T07:35:33Z xelxebar_ quit (Ping timeout: 240 seconds) 2021-04-05T07:36:41Z amirouche: 00:00 UTC is ambigious related to american time 12h or 24h (i guess) 2021-04-05T07:36:55Z amirouche: I do not undestand UTC-12 tho 2021-04-05T07:36:56Z ChoHag: Hah. Last year they pushed the deadline back ayway. 2021-04-05T07:37:22Z ChoHag: To be on the outside edge of the day (international date line) rather than in the middle of if (meridian). 2021-04-05T07:37:48Z ChoHag: Just to be weird, in other words. 2021-04-05T07:38:24Z amirouche: so it says, the very last time it is 23:59 on Earth, is still valid. 2021-04-05T07:39:10Z ChoHag: I guess it's also a test of whether the programmer understands handling time. 2021-04-05T07:39:20Z amirouche: x) 2021-04-05T07:44:39Z lockywolf: 00:00 is believed to be ambiguous by sufficiently many people 2021-04-05T07:44:45Z lockywolf: e.g. the military 2021-04-05T07:45:34Z lockywolf: also, in the Soviet Russia time handles you 2021-04-05T07:45:59Z lockywolf: quite brutally 2021-04-05T07:46:50Z lockywolf: I think there are places that are further away from UTC than -12 2021-04-05T07:47:05Z lockywolf: I think some minor islands are -14 or smth 2021-04-05T07:52:42Z mdhughes: This will answer your questions: https://www.youtube.com/watch?v=QDmWYVdN8ug 2021-04-05T07:55:33Z ecraven: amirouche: UTC doesn't have am/pm, does it? 2021-04-05T07:59:26Z snan: What? Why would it be different than any other time zone? 2021-04-05T08:00:05Z ZombieChicken quit (Remote host closed the connection) 2021-04-05T08:06:51Z hendursa1 joined #scheme 2021-04-05T08:09:09Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-05T08:10:58Z ecraven: because it is *not* a time zone, but a time standard 2021-04-05T08:11:28Z abralek quit (Quit: CoreIRC for Android - www.coreirc.com) 2021-04-05T08:11:44Z abralek joined #scheme 2021-04-05T08:12:37Z lockywolf: in the Greenwich Observatory, the Sun never rises 2021-04-05T08:12:53Z lockywolf: hence not PM 2021-04-05T08:18:43Z abralek quit (Quit: CoreIRC for Android - www.coreirc.com) 2021-04-05T08:19:04Z abralek joined #scheme 2021-04-05T08:21:38Z abralek quit (Client Quit) 2021-04-05T08:21:54Z abralek_ joined #scheme 2021-04-05T08:23:04Z mdhughes: Weirdly also true of Seattle time. There's dark and less dark. Then it becomes dark again. 2021-04-05T08:24:46Z abralek_ quit (Client Quit) 2021-04-05T08:25:00Z abralek_ joined #scheme 2021-04-05T08:25:46Z abralek_ quit (Client Quit) 2021-04-05T08:26:00Z abralek joined #scheme 2021-04-05T08:41:12Z mdhughes: Also, SRFI 19 is great, one of the few Scheme libraries which matches reality *and* is useful, except the units are bizarre. tzoffset is in seconds, not hours or hours:minutes as in ISO-8601. I suppose nanoseconds are valid, except most system clocks (as opposed to high-speed timers) give millisecond precision at best. 2021-04-05T08:41:34Z mdhughes: (date->string (time-utc->date (current-time) (* -12 3600) )) 2021-04-05T08:49:02Z sz0 quit (Quit: Connection closed for inactivity) 2021-04-05T08:53:57Z ech quit (Ping timeout: 240 seconds) 2021-04-05T08:57:48Z snan: snan, what is best in life? 2021-04-05T08:57:48Z snan: Multiplying numbers by hardcoded 86400 constants 2021-04-05T08:58:22Z ChoHag: Hot water, good dentishtry and shoft lavatory paper. 2021-04-05T09:04:11Z lritter joined #scheme 2021-04-05T09:11:21Z midow joined #scheme 2021-04-05T09:15:14Z mdhughes: Thanks, Cohen the Barbarian. 2021-04-05T09:19:03Z m1dow joined #scheme 2021-04-05T09:20:07Z midow quit (Ping timeout: 260 seconds) 2021-04-05T09:29:10Z midow joined #scheme 2021-04-05T09:32:43Z m1dow quit (Ping timeout: 276 seconds) 2021-04-05T09:40:52Z lockywolf: I'm writing a file system visualizer, and it's a lot of pain. 2021-04-05T09:41:55Z lockywolf: scsh is fine though 2021-04-05T09:43:06Z snan: scsh is fantastic♥ 2021-04-05T09:46:29Z lockywolf: is it possible to make scsh (or scheme48) show the stack trace when something goes wrong? 2021-04-05T09:46:33Z lockywolf: by default 2021-04-05T09:50:42Z abralek quit (Remote host closed the connection) 2021-04-05T09:51:39Z abralek joined #scheme 2021-04-05T10:05:57Z brendyyn joined #scheme 2021-04-05T10:18:14Z ChoHag: What do filesystems look like? 2021-04-05T10:19:15Z ChoHag: https://en.wikipedia.org/wiki/File_System_Visualizer ? 2021-04-05T10:19:49Z snan: ?!? Jurassic Park basically 2021-04-05T10:19:54Z snan: It's a movie where they use Irix 2021-04-05T10:20:58Z ChoHag: The more I got to know unix the more that scene made me retrospectively cringe. 2021-04-05T10:21:20Z snan: I had the reverse evolution 2021-04-05T10:21:32Z snan: Every command I learned I was like soooon! Soon I can hack the dinos 2021-04-05T10:21:53Z snan: https://en.wikipedia.org/wiki/Fsn_(file_manager) this is the app she uses 2021-04-05T10:24:40Z snan: Here is an excerpt https://www.youtube.com/watch?v=dxIPcbmo1_U 2021-04-05T10:26:47Z mdhughes: I didn't use fsn much, but gophervr was fantastic. 2021-04-05T10:27:49Z snan: Oh it uses an extension to Gopher 2021-04-05T10:28:50Z amirouche: hacking dino or hacking deno? 2021-04-05T10:28:51Z mdhughes: Just a new client that positioned links and infos around you. So if you knew a gopherspace well, you could just zoom, turn, zoom, turn, and be at whatever you wanted. 2021-04-05T10:33:26Z jcowan: The theory of 23:59:59 UTC-12 is that you have till the last second of the deadline no matter where you live. 2021-04-05T10:33:41Z jcowan: Also, there is no -13 or -14, though there are +13 and +14 2021-04-05T10:40:57Z amirouche reading about http://zeus.jtan.com/~chohag/lossless.pdf 2021-04-05T10:41:15Z klovett quit (Remote host closed the connection) 2021-04-05T10:41:51Z klovett joined #scheme 2021-04-05T10:44:15Z badkins joined #scheme 2021-04-05T10:48:09Z ChoHag: What do you think of it? 2021-04-05T10:48:34Z ChoHag: There's a lot to do still obviously and I'm trying to decide which direction to move in next. 2021-04-05T10:48:41Z ChoHag: Which is why I'm tinkering with the formatting... 2021-04-05T10:48:56Z badkins quit (Ping timeout: 265 seconds) 2021-04-05T10:48:57Z amirouche: I skimed.. What is the combinator thing? 2021-04-05T10:49:07Z mjl joined #scheme 2021-04-05T10:49:25Z ChoHag: Fancy word for function. 2021-04-05T10:49:38Z amirouche: First class operatives are also functions? 2021-04-05T10:50:25Z amirouche: I like the numbering in the pdf. 2021-04-05T10:50:26Z ChoHag: ... sort of. 2021-04-05T10:50:30Z ChoHag: I'm very bad at the theory. 2021-04-05T10:50:57Z amirouche: maybe easier question: how does it differ with RnRS? 2021-04-05T10:53:29Z ChoHag: I'm planning to implement at least one of those in it. 2021-04-05T10:54:10Z amirouche: does it support in particular a given feature ? 2021-04-05T10:54:21Z ChoHag: All of the symbols/functions/etc. that the Rns define can be implemented in terms of lambda or vov with minimal non-lisp additions to the core. 2021-04-05T10:54:40Z ChoHag: The first-class operatives. 2021-04-05T10:55:00Z amirouche: Ah! So that was an important bit from the text :) 2021-04-05T10:55:05Z ChoHag: And it's been designed from the beginning to be easy to insert delimited continuations, because I wrote it in the first place because I wanted those. 2021-04-05T10:55:26Z amirouche: that was my next question: what about call/cc et al.? 2021-04-05T10:55:36Z ChoHag: (An extra cell in the frame header and some stack copying/mangling) 2021-04-05T10:56:07Z ChoHag: call/cc comes by having such a delimiter in the first frame that's always entered at the beginning. 2021-04-05T10:58:13Z ChoHag: Another thing, and the reason I wanted to experience using literate programming, is I want to fool around with tying source code and documentation/explanations together. 2021-04-05T10:59:09Z ChoHag: eg. Writing it was a major PITA due to the 1970s style "write-for-a-weird-custom-parser, laborious compile chain, check result" development style. 2021-04-05T11:01:51Z skapatov quit (Ping timeout: 260 seconds) 2021-04-05T11:06:59Z Aquazi joined #scheme 2021-04-05T11:13:29Z skapata joined #scheme 2021-04-05T11:25:45Z skapata quit (Remote host closed the connection) 2021-04-05T11:49:14Z frost-lab joined #scheme 2021-04-05T11:54:55Z t99 joined #scheme 2021-04-05T11:59:47Z snan: amirouche: dinosaurus♥ 2021-04-05T12:23:22Z cchristiansen quit (Remote host closed the connection) 2021-04-05T12:33:43Z jcowan: ChoHag: the name is weird. It sounds like "lossless" as in compressipn meaning "no loss at all". I think what you want is "LessLoss". 2021-04-05T12:42:21Z motersen quit (Ping timeout: 240 seconds) 2021-04-05T12:47:11Z phillbush joined #scheme 2021-04-05T12:47:18Z motersen joined #scheme 2021-04-05T12:56:46Z t99 quit (Ping timeout: 268 seconds) 2021-04-05T13:04:33Z t99 joined #scheme 2021-04-05T13:05:40Z frost-lab quit (Quit: Connection closed) 2021-04-05T13:09:44Z t99: Hey. In a function taking a parameter xs, what does the suffixed quote in xs' mean? Such as (xs' (cdr xs)) ) 2021-04-05T13:11:37Z wasamasa: it's part of the name 2021-04-05T13:11:53Z wasamasa: appending a prime is a mathematical tradition for slightly different, yet similar variables 2021-04-05T13:12:47Z t99: yeah I know what prime means in math, but the parameter name is without it 2021-04-05T13:12:54Z t99: so I guess scheme just drops it? 2021-04-05T13:13:06Z t99: so xs is the same as xs' ? 2021-04-05T13:13:13Z wasamasa: no 2021-04-05T13:13:17Z wasamasa: it's part of the name 2021-04-05T13:13:30Z wasamasa: xs' is a different name from xs 2021-04-05T13:13:48Z t99: that was my initial thought, so I guess the example I'm looking at is just wrong 2021-04-05T13:14:10Z t99: thanks for confirming 2021-04-05T13:14:22Z wasamasa: at least that's how it works in clojure 2021-04-05T13:14:51Z wasamasa: I'd need to test whether scheme is as lenient with symbol characters or interprets it like (xs '(cdr xs)) 2021-04-05T13:15:54Z t99: oh maybe that's it! 2021-04-05T13:16:08Z t99: (xs' (cdr xs)) ) 2021-04-05T13:16:16Z t99: yeah, racket says xs is undefined 2021-04-05T13:16:30Z wasamasa: yeah, it seems CHICKEN interprets the quote as not part of the symbol 2021-04-05T13:16:31Z wasamasa: TIL 2021-04-05T13:16:43Z wasamasa: you'd need to look at the scheme grammar to be sure 2021-04-05T13:16:45Z t99: good to know :) 2021-04-05T13:16:51Z wasamasa: maybe it's a clojure-only feature 2021-04-05T13:17:05Z t99: hah i was so confused, looked like it was part of the name 2021-04-05T13:18:05Z wasamasa: yup, grammar confirms that 2021-04-05T13:18:35Z wasamasa shakes fist at clojure 2021-04-05T13:19:19Z t99: :) 2021-04-05T13:28:00Z klovett quit (Remote host closed the connection) 2021-04-05T13:28:18Z klovett joined #scheme 2021-04-05T13:40:11Z shawnw quit (Ping timeout: 240 seconds) 2021-04-05T13:40:11Z dpk: i'd be extremely confused by something like this: xs' ( 2021-04-05T13:40:19Z dpk: and assume it was a typo for: xs '( 2021-04-05T13:40:36Z t99: yeah it's weird. Looks like (append '(1) '(1 2 3)) splices the second list to the first one. What's the typical way to actually append the list as a list? 2021-04-05T13:40:51Z dpk: that should give '(1 1 2 3) 2021-04-05T13:41:06Z opFez joined #scheme 2021-04-05T13:41:08Z dpk: what do you mean by 'actually append the list as a list'? what result do you want? 2021-04-05T13:41:31Z t99: '(1 '(1 2 3)) 2021-04-05T13:41:39Z t99: '(1 (1 2 3)) 2021-04-05T13:41:57Z dpk: (cons 1 (list '(1 2 3))) 2021-04-05T13:42:20Z t99: alright thanks 2021-04-05T13:42:20Z dpk: no, wait, i see what you want 2021-04-05T13:42:24Z t99: oh 2021-04-05T13:42:41Z dpk: you want to put (1 2 3) at the *end* of the list (1), right? 2021-04-05T13:43:00Z wasamasa: (1) is a funny way of writing (1 . ()) 2021-04-05T13:43:14Z wasamasa: so appending (1 2 3) to the end of (1 . ()) would turn it into (1 . (1 2 3)) 2021-04-05T13:43:18Z dpk: so it'd be (append '(1) (list '(1 2 3)) or equivalently (append '(1) '((1 2 3))) 2021-04-05T13:43:19Z wasamasa: which can be shortened to (1 1 2 3) 2021-04-05T13:44:08Z t99: yeah (append '(1) '((1 2 3))) works, I assumed append didn't splice the list 2021-04-05T13:44:12Z dpk: (though note that putting things at the end of a list in Scheme is slow (it takes O(n) time). putting them at the beginning, such as by using cons, is quicker, O(1)) 2021-04-05T13:44:33Z t99: good point, just learning syntax here :) 2021-04-05T13:45:34Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-05T13:46:51Z badkins joined #scheme 2021-04-05T13:47:50Z badkins quit (Remote host closed the connection) 2021-04-05T13:48:50Z opFez: is it idiomatic to do (cons 1 (list '(1 2 3))) instead of (cons 1 (cons '(1 2 3) '()))? 2021-04-05T13:49:06Z opFez: just finished the little schemer, and didn't see the list function be used there 2021-04-05T13:49:56Z dpk: in that case, i'd say it's a meh 2021-04-05T13:50:35Z dpk: in the general case in real-life code, i'd be puzzled by use of cons with '() as the second argument 2021-04-05T13:50:49Z dpk: but for demonstration of how cons works to build lists, it makes sense, i guess 2021-04-05T13:51:01Z opFez: i see. thanks 2021-04-05T13:51:26Z badkins joined #scheme 2021-04-05T13:51:31Z dpk: (just my own view, though) 2021-04-05T13:52:10Z opFez: are there even typical idiomatic syntax for scheme? it doesn't seem to have such strict enforcements as something like C++ 2021-04-05T13:52:21Z cpape` quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-04-05T13:52:27Z opFez: syntax is probably the wrong word here though... 2021-04-05T13:52:42Z midow quit (Read error: Connection reset by peer) 2021-04-05T13:53:52Z dpk: i mean, there are some stylistic things that pretty much everyone agrees on, like not putting ) on its own line 2021-04-05T13:54:22Z opFez: yeah that's true 2021-04-05T13:54:48Z dieggsy: dpk: *shudders* heh 2021-04-05T13:54:51Z dpk: but not a huge amount. S-expressions are such simple notation that there's not that many ways to write them in the first place 2021-04-05T13:55:48Z opFez: even with such a simple syntax i feel scheme has many more ways to achieve a goal than a language like, say, Go 2021-04-05T13:56:20Z wasamasa: https://mumble.net/~campbell/scheme/style.txt 2021-04-05T13:56:56Z opFez: wasamasa: that seems like a handy document, thanks 2021-04-05T13:58:39Z t99: indeed a nice doc! 2021-04-05T13:59:00Z t99: lisp is actually quite readabe when indentation is done right 2021-04-05T13:59:15Z t99: readable* 2021-04-05T13:59:19Z opFez: i guess emacs does that for me for the most part 2021-04-05T14:12:48Z badkins quit (Remote host closed the connection) 2021-04-05T14:13:34Z badkins joined #scheme 2021-04-05T14:32:43Z t99 quit (Ping timeout: 265 seconds) 2021-04-05T14:32:45Z ChoHag: jcowan: It's gone through a few iterations of name. 2021-04-05T14:32:52Z Noisytoot joined #scheme 2021-04-05T14:33:00Z ChoHag: I like style documents. Full of rules to break. 2021-04-05T14:34:53Z abralek quit (Read error: Connection reset by peer) 2021-04-05T14:41:32Z abralek[m] joined #scheme 2021-04-05T14:43:57Z rj quit (Ping timeout: 240 seconds) 2021-04-05T14:46:50Z t99 joined #scheme 2021-04-05T14:53:21Z abralek[m] quit (Quit: Quit) 2021-04-05T15:04:34Z badkins quit (Remote host closed the connection) 2021-04-05T15:05:11Z badkins joined #scheme 2021-04-05T15:06:33Z brendyyn quit (Ping timeout: 265 seconds) 2021-04-05T15:09:40Z s-video joined #scheme 2021-04-05T15:09:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-05T15:12:16Z badkins joined #scheme 2021-04-05T15:25:51Z amirouche: opFez: hey 2021-04-05T15:26:14Z amirouche need to become an unsyntax expert in less than two month. 2021-04-05T15:33:18Z opFez quit (Ping timeout: 240 seconds) 2021-04-05T15:40:57Z rj joined #scheme 2021-04-05T15:40:59Z abralek[m] joined #scheme 2021-04-05T15:44:25Z lockywolf: is there a permissive version of (drop l x) ? 2021-04-05T15:44:39Z lockywolf: that returns "up to x elements of l" 2021-04-05T15:44:41Z abralek[m] quit (Client Quit) 2021-04-05T15:51:48Z Zipheir: Not in SRFI 1 or any other standard I know of. 2021-04-05T15:52:13Z Zipheir: (Which is unfortunate.) 2021-04-05T15:55:04Z Zipheir: I think it's also unfortunate that SRFI 127 didn't go permissive with lseq-take/-drop. It's easy enough to write, in any case. 2021-04-05T15:58:54Z badkins quit (Remote host closed the connection) 2021-04-05T16:00:35Z badkins joined #scheme 2021-04-05T16:05:27Z badkins quit (Ping timeout: 240 seconds) 2021-04-05T16:09:02Z abralek joined #scheme 2021-04-05T16:09:33Z rj quit (Ping timeout: 240 seconds) 2021-04-05T16:13:42Z rj joined #scheme 2021-04-05T16:21:28Z badkins joined #scheme 2021-04-05T16:36:16Z t99: parenthesis are balanced -or- parenthesis is balanced ? I'm disagreeing with grammarly :D 2021-04-05T16:36:30Z wasamasa: parentheses 2021-04-05T16:37:29Z t99: (wen facepalm emojis on irc?) 2021-04-05T16:41:47Z civodul joined #scheme 2021-04-05T16:43:37Z Zipheir: When everyone has emoji fonts, presumably. 2021-04-05T16:44:40Z ChoHag: Wen is the name of my cat. 2021-04-05T16:45:03Z phillbush quit (Quit: Leaving) 2021-04-05T16:45:07Z t99: Wen wen purr? 2021-04-05T16:47:40Z phillbush joined #scheme 2021-04-05T16:50:12Z amirouche: ron ron ron 2021-04-05T16:52:17Z ChoHag: I know , and ,@ are invalid outside of a quasiquote, but if they weren't what would you expect them to do? 2021-04-05T16:53:31Z wasamasa: some schemes allow using them inside a macro that does use quasiquote in its expansion 2021-04-05T16:53:33Z rj quit (Ping timeout: 240 seconds) 2021-04-05T16:53:37Z Zipheir: You can use them in macros outside of quasiquote. Oleg's pattern-matcher does that. 2021-04-05T16:53:37Z wasamasa: which can be very useful 2021-04-05T16:54:21Z ChoHag: Any examples/description of how they perform in that context? 2021-04-05T16:55:04Z opFez joined #scheme 2021-04-05T16:55:45Z ChoHag: Also, who is Oleg? 2021-04-05T16:55:55Z ech joined #scheme 2021-04-05T16:56:03Z wasamasa: https://scsh.net/docu/html/man-Z-H-3.html#node_sec_2.2 2021-04-05T16:56:15Z wasamasa: you use symbols/strings to refer to process names and their arguments 2021-04-05T16:56:36Z wasamasa: but in CHICKEN's port of that functionality, you can use unquote to refer to an existing binding 2021-04-05T16:57:03Z Zipheir: ChoHag: Oleg Kiselyov, known for his macros and general wizardry. 2021-04-05T16:57:16Z Zipheir: (Also co-author of The Reasoned Schemer.) 2021-04-05T16:57:59Z Zipheir: ChoHag: e.g. (pmatch (list 1 2) ((,x ,y) (values x y))) ; => 1 2 2021-04-05T16:58:17Z wasamasa: like (run (,program-name ,@args)) 2021-04-05T16:58:29Z Zipheir: There's no actual quasiquote; the macro just uses `unquote' to differentiate bound variables from literals. 2021-04-05T16:58:45Z ChoHag: It looks like it implicitely wraps the construct in quasiquote. 2021-04-05T16:59:02Z rj joined #scheme 2021-04-05T16:59:23Z Zipheir: It doesn't. 2021-04-05T16:59:38Z Zipheir: wasamasa's example does, I believe. 2021-04-05T16:59:51Z ChoHag: https://www.reddit.com/r/programming/comments/7wbtg/who_is_oleg_kiselyov_no_really_can_anyone_post_a/c07lbu9/?utm_source=reddit&utm_medium=web2x&context=3 2021-04-05T16:59:51Z rudybot: https://teensy.info/v1ep0QjXqU 2021-04-05T17:00:45Z Zipheir: That first response is fantastic and I am using it from now on. 2021-04-05T17:00:52Z ChoHag: I think this list is a lie: Oleg can read C++ compiler error messages. 2021-04-05T17:01:10Z Zipheir: "You know the Agents in The Matrix? He's like that, only good, not evil." 2021-04-05T17:02:58Z Zipheir: Clearly that was written in the heyday of Chuck Norris jokes. 2021-04-05T17:05:31Z amirouche: So, I want (wanted?) to build a Scheme that targets JavaScript, but... BUT it is not self hosted, it would written with ChezScheme, and it would not have an interpreter yet. 2021-04-05T17:05:40Z Wezl: ChoHag: I'd expect , and ,@ to do read-time evaluation 2021-04-05T17:05:52Z wasamasa: Zipheir: yes indeed 2021-04-05T17:06:04Z amirouche: The problem I am faced, is that I want to have libraries and possibly some macros. 2021-04-05T17:06:07Z ChoHag: QUIZ: Are you even good enough to have imposter syndrome? 2021-04-05T17:06:52Z amirouche: I understand better why people speak of magic when it comes to syntax. 2021-04-05T17:07:29Z amirouche: syntax transformers. 2021-04-05T17:08:10Z Zipheir: amirouche: Sounds like a good opportunity to figure out the magic. 2021-04-05T17:08:13Z amirouche: I am confused. 2021-04-05T17:08:45Z amirouche: I do not think LiSP deals with macro systems, does it? 2021-04-05T17:09:01Z Zipheir: How so? 2021-04-05T17:09:18Z amirouche: LiSP = LISP in Small Pieces? 2021-04-05T17:10:19Z Zipheir: Oh, oops. 2021-04-05T17:10:38Z Zipheir: Capitalization intentional! 2021-04-05T17:10:45Z Zipheir: I don't think so. 2021-04-05T17:11:43Z opFez: actually, speaking of macros: what's a good resource for learning scheme macros? i'm kind of lost on the subject 2021-04-05T17:11:53Z amirouche: srfi-93 ? 2021-04-05T17:12:32Z Zipheir: amirouche: I'm wrong, it does. Chapter 9 of LiSP. 2021-04-05T17:12:56Z amirouche reading 2021-04-05T17:12:57Z amirouche: :) 2021-04-05T17:13:00Z opFez: amirouche: (assuming you're writing to me) yeah i want to learn unhygienic macros later, but i don't even know hygienic macros 2021-04-05T17:13:04Z Zipheir: opFez: Have you read JRM's syntax-rules Primer? 2021-04-05T17:13:22Z opFez: Zipheir: no, is that a good introduction? 2021-04-05T17:13:35Z Zipheir: opFez: Yes. http://ix.io/2q9Z 2021-04-05T17:13:50Z opFez: Ziphir: cheers! 2021-04-05T17:14:33Z Zipheir: It gets pretty hairy toward the end, with the Scheme-interpreter-in-syntax-rules. 2021-04-05T17:14:50Z Zipheir: But it's a great tutorial. 2021-04-05T17:18:44Z badkins quit (Remote host closed the connection) 2021-04-05T17:21:39Z iv4nshm4k0v quit (Ping timeout: 245 seconds) 2021-04-05T17:23:02Z jao joined #scheme 2021-04-05T17:24:07Z badkins joined #scheme 2021-04-05T17:24:45Z motersen quit (Ping timeout: 240 seconds) 2021-04-05T17:24:54Z motersen_ joined #scheme 2021-04-05T17:28:14Z badkins quit (Ping timeout: 246 seconds) 2021-04-05T17:34:23Z badkins joined #scheme 2021-04-05T17:34:58Z emacsomancer quit (Ping timeout: 240 seconds) 2021-04-05T17:36:45Z rj quit (Ping timeout: 240 seconds) 2021-04-05T17:39:30Z emacsomancer joined #scheme 2021-04-05T17:41:57Z rj joined #scheme 2021-04-05T17:43:02Z ChoHag: The variables that are unquoted are those which are bound at the time the quasiquote operator is being evaluated, right? 2021-04-05T17:43:38Z t99 quit (Ping timeout: 265 seconds) 2021-04-05T17:47:41Z emacsomancer quit (Ping timeout: 240 seconds) 2021-04-05T17:48:52Z ChoHag: Does anyone know of any resource explaining how nested quasiquotes should work other than 1 brief, dense paragraph in r7rs? 2021-04-05T17:50:22Z wasamasa: there are test suites for that 2021-04-05T17:50:26Z wasamasa: but that's not an explanation 2021-04-05T17:50:58Z dpk: nested quasiquote is mostly hard for programmers, not for implementers 2021-04-05T17:51:43Z emacsomancer joined #scheme 2021-04-05T17:52:14Z dpk: afaik Scheme uses naïve semantics (so in `(a `(,b))), the ,b is unquoted by the outer quasiquote)? 2021-04-05T17:52:31Z dpk double-checks R7RS 2021-04-05T17:52:42Z ChoHag: Page 21. 2021-04-05T17:54:25Z dpk: well, the first example implies i'm wrong 2021-04-05T17:54:38Z dpk: but the prose is a bit opaque for me too 2021-04-05T17:55:01Z ChoHag: In s9, which is what I butchered, the second gives me *** error: undefined symbol: unquote :) 2021-04-05T17:55:03Z wasamasa: http://repository.readscheme.org/ftp/papers/pepm99/bawden.pdf 2021-04-05T17:55:11Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-05T17:55:15Z wasamasa: 3.2 2021-04-05T17:55:26Z dpk: 494? 2021-04-05T17:55:29Z dpk: err, 404 2021-04-05T17:55:48Z ChoHag: OK it's not just me. 2021-04-05T17:56:15Z ChoHag: Oh yeah. reacscheme.org haven't paid their hosting fees or something. 2021-04-05T17:56:27Z pinoaffe quit (Changing host) 2021-04-05T17:56:27Z pinoaffe joined #scheme 2021-04-05T17:56:28Z wasamasa: they haven't paid their domain registrar fees 2021-04-05T17:56:36Z wasamasa: hosting is still up, if you edit your hosts file, it works 2021-04-05T17:56:55Z yosafbridge quit (Quit: Leaving) 2021-04-05T17:56:58Z ChoHag sighs 2021-04-05T17:57:03Z ChoHag: Developers... 2021-04-05T17:57:15Z wasamasa: haven't been able to reach the owner 2021-04-05T17:57:19Z gravicappa joined #scheme 2021-04-05T17:57:20Z wasamasa: https://github.com/sergi/chicken-core/blob/39b1a129cddb4f39279b39396556112a444d3267/tests/syntax-tests.scm#L932 2021-04-05T17:57:21Z rudybot: https://teensy.info/KHMHxT9ZTR 2021-04-05T17:57:32Z wasamasa: taken from https://github.com/kanaka/mal/issues/103 2021-04-05T17:58:01Z ChoHag: Eesh. 2021-04-05T17:58:03Z ChoHag: Thanks. I think. 2021-04-05T17:58:26Z wasamasa: https://github.com/schemedoc/bibliography/blob/master/page2.md links to the postscript version for some reason 2021-04-05T17:58:47Z wasamasa: 212.110.186.28 repository.readscheme.org 2021-04-05T17:59:17Z ChoHag: Thanks. 2021-04-05T17:59:25Z ChoHag: Is it the same IP for all subdomains? 2021-04-05T17:59:32Z ChoHag: I wanted that site for something earlier. 2021-04-05T17:59:57Z gwatt: I think someone also grabbed the whole site and stuck it gh-pages 2021-04-05T18:00:47Z ChoHag: I already like section 2. 2021-04-05T18:00:52Z ChoHag: "Let's see how the computer does it." 2021-04-05T18:02:09Z wasamasa: yes, same IP 2021-04-05T18:07:00Z wilfredh joined #scheme 2021-04-05T18:08:38Z yosafbridge joined #scheme 2021-04-05T18:17:40Z ChoHag: "Intuitively, an atsign has the effect of causing the comma to be 'mapped over' the elemnts of the value of the following expression." 2021-04-05T18:17:51Z ChoHag: It is intuitive, but only after you showed it to me. 2021-04-05T18:18:26Z ChoHag: ,,@X : The value of X will appear as a list of expressions in the intermediate quasiquotation. The individual values of those expressions will be substituted into the final result. 2021-04-05T18:19:33Z rj quit (Ping timeout: 240 seconds) 2021-04-05T18:20:53Z amirouche: I made progress wrt "ribcage", it seems like somekind of environment for the expander 2021-04-05T18:23:29Z rj joined #scheme 2021-04-05T18:25:51Z ChoHag: Aye aye aye. (let ((let '`(let ((let ',let)) ,let))) `(let ((let ',let)) ,let)) 2021-04-05T18:26:44Z ChoHag: Quasiquine. 2021-04-05T18:27:09Z wasamasa: it's beautiful 2021-04-05T18:27:20Z opFez: it truly is 2021-04-05T18:27:28Z wasamasa: I've seen it in a CL document debating the lisp-1 vs lisp-n benefits and downsides 2021-04-05T18:28:12Z opFez: i think the fact that such a thing is possible makes lisp-1's automatically superior 2021-04-05T18:28:26Z wasamasa: though, can't find it here: http://www.nhplace.com/kent/Papers/Technical-Issues.html 2021-04-05T18:28:44Z ChoHag: UNHANDLED ERROR: unbound: let :( 2021-04-05T18:29:12Z wasamasa: (DEFUN ODDITY (LIST) (LIST LIST LIST)) 2021-04-05T18:29:25Z ChoHag: ... The :( is not part of the error message. I don't like computers personalising themselves. 2021-04-05T18:30:50Z t99 joined #scheme 2021-04-05T18:31:29Z ChoHag: Pretty much everything at this point where I think "I should implement X next", after a few iterations I realise I need macros. 2021-04-05T18:31:38Z ChoHag: Especially when X is macros. 2021-04-05T18:32:55Z wasamasa: you could pull R4RS and just have define-macro 2021-04-05T18:33:05Z wasamasa: it's not too hard to do 2021-04-05T18:33:24Z ChoHag: Oh? Didn't macros come in in r5? 2021-04-05T18:33:27Z ChoHag opens. 2021-04-05T18:33:48Z wasamasa: yes, it did 2021-04-05T18:33:56Z wasamasa: stalin is R4RS and offers define-macro only 2021-04-05T18:34:20Z Zipheir: R4RS: "Macros suck." 2021-04-05T18:34:30Z ChoHag: It's in an appendix. 2021-04-05T18:34:31Z gwatt: ChoHag: pretty sure macros in scheme have been around forever. I think the first standardized one was syntax-rules 2021-04-05T18:34:41Z ChoHag: "This might randomly kill you" 2021-04-05T18:34:57Z Zipheir: Maybe it's R2 or R3 that says macros suck. 2021-04-05T18:35:24Z Zipheir: Before syntax-rules none of the Scheme standards would touch them. 2021-04-05T18:36:09Z wasamasa: consider using alexpander 2021-04-05T18:36:32Z ChoHag: When did scheme develop quasiquotation? 2021-04-05T18:37:07Z wasamasa: https://srfi.schemers.org/srfi-46/srfi-46.html lists both alexpander and EIOD as implementations for the proposal 2021-04-05T18:37:46Z lritter quit (Ping timeout: 265 seconds) 2021-04-05T18:40:08Z gwatt: ChoHag: I think quasiquotation might predate scheme. 2021-04-05T18:40:25Z ChoHag: gwatt: Develop in the biological sense, like a wart. 2021-04-05T18:41:26Z hugo quit (Quit: ZNC 1.7.5 - https://znc.in) 2021-04-05T18:41:35Z hugo joined #scheme 2021-04-05T18:41:51Z snan: Quasiquotation is the best thing about lisp 2021-04-05T18:42:23Z snan: I want to grandfather in quotation, quasiquotation, unquoting, and splicing in my "no ASCII-art syntax in my language please" policy 2021-04-05T18:42:57Z wasamasa: it's so nice even scala wants a piece of that cake 2021-04-05T18:43:00Z gwatt: "No ASCII art. All art must be unicode" 2021-04-05T18:43:06Z wasamasa: https://docs.scala-lang.org/overviews/quasiquotes/intro.html 2021-04-05T18:43:39Z Zipheir: It's especially good with pattern-matching. 2021-04-05T18:46:39Z Zipheir: Though, as a metalinguistic operator, the semantics are a bit brain-melting. 2021-04-05T18:47:04Z ChoHag: Brains are designed for finding where the best fruit is. 2021-04-05T18:47:10Z ChoHag: None of this is not brain-melting. 2021-04-05T18:47:43Z wasamasa: even a fruit fly has enough brain capacity for that 2021-04-05T18:48:02Z Zipheir: Well, a language without quotation will be simpler. 2021-04-05T18:49:20Z ChoHag: wasamasa: The human brain isn’t particularly good at basic logic and now there’s a whole career in doing nothing but really, really complex logic. 2021-04-05T18:49:54Z wasamasa: despite that, seemingly everything outside of computers has been done impressively well 2021-04-05T18:50:13Z wasamasa: bridges are pretty nice 2021-04-05T18:50:16Z ChoHag: None of that involves really, really complex logic. 2021-04-05T18:50:43Z Zipheir: ChoHag: Like ordinary communication? "Ordinary life is pretty complex stuff" --Harvey Pekar or Wittgenstein, I can't remember which. 2021-04-05T18:51:08Z wasamasa: I was about to write a witty reply to that, but then I've heard exasperated gasping from my neighbor 2021-04-05T18:51:30Z wasamasa: maybe you're right and we just like to overcomplicate things 2021-04-05T18:51:49Z ChoHag: Oh we do. 2021-04-05T18:53:32Z ChoHag: I'm a sysadmin by trade not a developer, and I'm constantly butting heads against developers who (unwittingly, because it's in their nature) like to complicate things. 2021-04-05T18:53:33Z Zipheir: "...the core challenge for computing science is hence a conceptual one, viz., what (abstract) mechanisms we can conceive without getting lost in the complexities of our own making." (EWD) 2021-04-05T18:54:05Z ChoHag: So much of the dumpster fire that is modern computing is due entirely to the desire among people who like solving complicated problems to complicate things. 2021-04-05T18:54:37Z ChoHag: Djikstra knew what was what. 2021-04-05T18:55:12Z snan: I got downvoted for raggin on Dijkstra's zero ordering thing. But I still think he was wrong there 2021-04-05T18:55:24Z snan: He is great in so many other of his articles 2021-04-05T18:55:32Z snan: Even a good writer / thinker can be wrong about things 2021-04-05T18:57:43Z t99: anyone got a simple mapcar implementation so I can see how it can be done? 2021-04-05T18:57:57Z wasamasa: that should be a basic recursion exercise 2021-04-05T18:58:08Z wasamasa: ITYM map though 2021-04-05T18:58:13Z wasamasa: mapcar is the CL name 2021-04-05T18:58:14Z Zipheir: mapcar is map, right? 2021-04-05T18:58:16Z Zipheir: OK. 2021-04-05T18:58:24Z Zipheir: t99: What's your version? 2021-04-05T18:58:49Z Zipheir: (i.e. simpler than what?) 2021-04-05T18:58:49Z t99: not version, just read an 1979 paper with mapcar in it :D 2021-04-05T18:58:50Z skapata joined #scheme 2021-04-05T18:58:53Z t99: no* 2021-04-05T18:59:14Z t99: so I can pass a function and multiple lists and have a result list 2021-04-05T18:59:28Z wasamasa: the easiest version would be to punt the multiple lists requirement 2021-04-05T18:59:30Z Zipheir: t99: Can you figure out the single-list version? 2021-04-05T18:59:33Z Zipheir: jinx 2021-04-05T18:59:47Z wasamasa: yeah, I know, I should be focusing on hacking scheme :D 2021-04-05T18:59:49Z t99: heh, the multiple list version is what i need, the single one is easy 2021-04-05T19:00:09Z Zipheir: t99: Consider that you actually don't need the multi-list version. 2021-04-05T19:00:14Z wasamasa: another simplification is to avoid working correctly with multiple values 2021-04-05T19:00:31Z wasamasa: think I've seen one in cyclone 2021-04-05T19:00:34Z Zipheir: t99: You can refactor it as (a) zipping a bunch of lists into one list, and (b) mapping over that one list. 2021-04-05T19:00:51Z Zipheir: t99: That may make it a bit easier to think about. 2021-04-05T19:01:15Z Zipheir: (Multi-list map is just a boring efficiency hack.) 2021-04-05T19:01:19Z t99: Zipheir: but the mapcar interface was nice: (mapcar + (1 2 3) (4 5 6) -> (5 7 9) 2021-04-05T19:01:32Z t99: missing parenthesis, but you get the gist haha 2021-04-05T19:01:42Z Zipheir: t99: Sure, and you can do that once you know how the simple version works. 2021-04-05T19:02:43Z Zipheir: t99: It's a list recursion, so you need a base case and a recursive step. 2021-04-05T19:03:09Z ech quit (Ping timeout: 240 seconds) 2021-04-05T19:03:13Z t99: yeah, I see what you mean 2021-04-05T19:03:29Z Zipheir: i.e. you need solutions for the equations (map f '()) = ? and (map f (cons x xs)) = ? 2021-04-05T19:04:19Z logand``` quit (Ping timeout: 268 seconds) 2021-04-05T19:04:21Z rj quit (Ping timeout: 240 seconds) 2021-04-05T19:06:07Z Zipheir: A hint is that (map identity xs) = (identity xs) 2021-04-05T19:08:12Z logand joined #scheme 2021-04-05T19:08:31Z rj joined #scheme 2021-04-05T19:09:19Z everstone joined #scheme 2021-04-05T19:19:52Z scm_ joined #scheme 2021-04-05T19:29:22Z shawnw joined #scheme 2021-04-05T19:35:06Z ech joined #scheme 2021-04-05T19:41:29Z phillbush quit (Quit: Leaving) 2021-04-05T19:43:20Z badkins quit (Remote host closed the connection) 2021-04-05T19:49:09Z rj quit (Ping timeout: 240 seconds) 2021-04-05T19:51:18Z rj joined #scheme 2021-04-05T19:55:16Z badkins joined #scheme 2021-04-05T20:23:05Z ech quit (Quit: leaving) 2021-04-05T20:31:29Z midow joined #scheme 2021-04-05T20:31:38Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-05T20:31:57Z rj quit (Ping timeout: 240 seconds) 2021-04-05T20:36:30Z wilfredh quit (Quit: Connection closed for inactivity) 2021-04-05T20:37:09Z rj joined #scheme 2021-04-05T20:49:16Z t99: (apply f (car a) (map car next)) <- I'm seeing this in the wild. Since apply there takes multiple arguments, that's Common Lisp'ism right? 2021-04-05T20:49:40Z t99: If I understand correctly, scheme apply only accepts a function and a single list 2021-04-05T20:50:12Z Zipheir: Scheme's apply takes any number of arguments followed by a list. 2021-04-05T20:50:39Z Zipheir: So that's normal (if rather space-inefficient) Scheme. 2021-04-05T20:50:54Z t99: hm 2021-04-05T20:51:32Z t99: So common lisp is "apply function &rest args" 2021-04-05T20:51:54Z t99: if there are other arguments than the list... are those joined or just passed as separate arguments? 2021-04-05T20:52:13Z wasamasa: the only requirement is that the final argument is a list 2021-04-05T20:52:21Z wasamasa: that's the case in nearly all lisps 2021-04-05T20:52:29Z t99: Interesting 2021-04-05T20:52:45Z wasamasa: the arguments before that are consed to it 2021-04-05T20:53:14Z Zipheir: They're consed on to a copy of it. 2021-04-05T20:53:26Z Zipheir: Hence the occasional space leaks with apply. 2021-04-05T20:53:37Z t99: I see, so (apply myfun 1 2 '(3 4)) is like calling (myfun 1 2 '(3 4)) ? 2021-04-05T20:54:14Z wasamasa: no, it's like (myfun 1 2 3 4) 2021-04-05T20:54:46Z t99: ok so the last list is spliced into the argument list 2021-04-05T20:55:53Z Zipheir: Oops, I was wrong about that. I was thinking of a space-leak involving apply but not caused by it. 2021-04-05T20:56:03Z wasamasa: apply is different from funcall in this aspect 2021-04-05T20:56:27Z wasamasa: there is no need for funcall in a lisp-1 2021-04-05T20:56:45Z t99: makes sense, thanks guys 2021-04-05T20:57:05Z Zipheir: t99: See https://schemers.org/Documents/Standards/R5RS/HTML/r5rs-Z-H-9.html#%_sec_6.4 2021-04-05T20:57:22Z t99: thank you! 2021-04-05T20:57:27Z Zipheir: (It hasn't changed in R7RS; I'm not sure if R6 changed anything.) 2021-04-05T20:59:06Z t99: are there good reasons for not allowing just (apply + a b c) ? i.e. not require a list at the end? 2021-04-05T20:59:36Z t99: I understand that changes the definition, but just curious is there's some deep meaning to having a list at the end 2021-04-05T20:59:54Z wasamasa: it's kind of pointless if you can just (let ((foo +)) (foo a b c)) 2021-04-05T20:59:58Z Zipheir: You don't need apply there. 2021-04-05T21:00:45Z Zipheir: It's possible there's a use for it, though. ($) gets a lot of use in arcane Haskell. 2021-04-05T21:01:06Z wasamasa: ITYM pointless 2021-04-05T21:01:17Z Zipheir: ITYM? 2021-04-05T21:01:42Z wasamasa: I think you mean 2021-04-05T21:01:52Z Zipheir: As in 'point-free'? 2021-04-05T21:02:38Z wasamasa: yes 2021-04-05T21:03:04Z t99 didn't understand any of that meta discussion :D 2021-04-05T21:03:32Z Zipheir: For instance, you might (zip-with apply list-of-functions list-of-arg-lists) 2021-04-05T21:03:32Z wasamasa: https://willamette.edu/~fruehr/haskell/evolution.html 2021-04-05T21:03:50Z wasamasa: "Pointless (ahem) “Points-free” Haskell programmer" 2021-04-05T21:05:13Z Zipheir: t99: Haskell has implicit currying, so it's valid to define functions without providing arguments. 2021-04-05T21:05:18Z gwatt: points free is a programming style that emphasizes not having identifiers - including arguments - and instead composing higher-order functions to do the thing. 2021-04-05T21:05:27Z Zipheir: t99: This is often called "point-free style". 2021-04-05T21:05:40Z Zipheir: gwatt: I like how you put that. 2021-04-05T21:05:54Z gwatt: thanks 2021-04-05T21:05:59Z ft: I like the "Beginning Peano player" bit. ;) 2021-04-05T21:06:05Z t99: Zipheir: aha, that clears it up 2021-04-05T21:06:39Z Zipheir: e.g. in point-free style you might define `sum' by `fold + 0` 2021-04-05T21:07:55Z Zipheir: wasamasa: "Raised rabbits and later moved to New Jersey" is some deeply obscure in-joking. 2021-04-05T21:08:43Z wasamasa: indeed 2021-04-05T21:08:45Z dpk: oh dear, i get that joke 2021-04-05T21:08:58Z wasamasa: I got it many years later when studying the RABBIT paper 2021-04-05T21:10:11Z Zipheir: "Now owns a chicken farm and drinks at Chez Kent on weekends." 2021-04-05T21:12:26Z everstone quit (Ping timeout: 245 seconds) 2021-04-05T21:27:11Z scm_ quit (Ping timeout: 240 seconds) 2021-04-05T21:29:57Z rj quit (Ping timeout: 240 seconds) 2021-04-05T21:31:43Z badkins quit (Remote host closed the connection) 2021-04-05T21:34:22Z gambiteer joined #scheme 2021-04-05T21:39:08Z badkins joined #scheme 2021-04-05T21:39:19Z s-video quit (Ping timeout: 252 seconds) 2021-04-05T21:41:32Z s-video joined #scheme 2021-04-05T21:43:18Z badkins quit (Ping timeout: 240 seconds) 2021-04-05T21:48:00Z opFez quit (Quit: leaving) 2021-04-05T22:10:40Z rgherdt quit (Ping timeout: 246 seconds) 2021-04-05T22:43:27Z johnjay quit (Ping timeout: 240 seconds) 2021-04-05T22:48:23Z civodul quit (Ping timeout: 260 seconds) 2021-04-05T22:54:42Z s-video quit (Ping timeout: 258 seconds) 2021-04-05T23:02:58Z zooey quit (Remote host closed the connection) 2021-04-05T23:03:13Z zooey joined #scheme 2021-04-05T23:15:47Z s-video joined #scheme 2021-04-05T23:21:23Z cjb joined #scheme 2021-04-05T23:39:46Z badkins joined #scheme 2021-04-05T23:44:23Z badkins quit (Ping timeout: 260 seconds) 2021-04-05T23:58:53Z t99 quit (Ping timeout: 260 seconds) 2021-04-06T00:01:41Z acarrico joined #scheme 2021-04-06T00:32:56Z johnjay joined #scheme 2021-04-06T00:38:43Z gambiteer quit (Ping timeout: 240 seconds) 2021-04-06T01:10:33Z bitmapper joined #scheme 2021-04-06T01:25:45Z badkins joined #scheme 2021-04-06T01:29:51Z johnjay quit (Ping timeout: 260 seconds) 2021-04-06T01:29:58Z badkins quit (Ping timeout: 240 seconds) 2021-04-06T01:32:39Z johnjay joined #scheme 2021-04-06T01:35:55Z logand` joined #scheme 2021-04-06T01:39:26Z logand quit (Ping timeout: 240 seconds) 2021-04-06T01:46:00Z vv8 quit (Ping timeout: 265 seconds) 2021-04-06T01:47:27Z acarrico quit (Ping timeout: 265 seconds) 2021-04-06T01:57:43Z frost-lab joined #scheme 2021-04-06T02:11:49Z siraben: wasamasa: i love that article 2021-04-06T02:12:44Z siraben: Huh I don't understand the second to last example though, factorial as a paramorphism 2021-04-06T02:12:54Z siraben: maybe if I write out the commuting diagrams it'll make sense. 2021-04-06T02:13:20Z badkins joined #scheme 2021-04-06T02:17:55Z badkins quit (Ping timeout: 260 seconds) 2021-04-06T02:38:02Z bandali joined #scheme 2021-04-06T03:14:29Z marusich quit (Ping timeout: 246 seconds) 2021-04-06T03:15:35Z klovett quit (Remote host closed the connection) 2021-04-06T03:15:53Z klovett joined #scheme 2021-04-06T03:16:28Z klovett quit (Remote host closed the connection) 2021-04-06T03:17:23Z klovett joined #scheme 2021-04-06T03:17:41Z skapate joined #scheme 2021-04-06T03:19:00Z skapata quit (Ping timeout: 246 seconds) 2021-04-06T03:45:00Z klovett quit (Remote host closed the connection) 2021-04-06T03:45:11Z ba quit (Quit: ZNC - https://znc.in) 2021-04-06T03:45:16Z klovett joined #scheme 2021-04-06T03:46:21Z klovett quit (Remote host closed the connection) 2021-04-06T03:47:18Z klovett joined #scheme 2021-04-06T03:47:37Z vv8 joined #scheme 2021-04-06T04:30:30Z gambiteer joined #scheme 2021-04-06T04:35:58Z cybersyn`: lockywolf: thank you for this! its encouraging to know that i'm in fact progressing at a decent pace, and that i shouldn't hesitate to slow down and work through bits that weren't completely clear. i look forward to consulting this org file along the way :) 2021-04-06T04:38:01Z lockywolf: cybersyn`, you're welcom 2021-04-06T04:38:16Z marusich joined #scheme 2021-04-06T04:38:33Z lockywolf: you may consider using srfi-203 and srfi-216 if you don't want to write the support runtime yourself 2021-04-06T04:39:18Z lockywolf: otoh you may consider it an exercise 2021-04-06T04:44:49Z badkins joined #scheme 2021-04-06T04:50:02Z badkins quit (Ping timeout: 246 seconds) 2021-04-06T05:12:55Z jao quit (Ping timeout: 260 seconds) 2021-04-06T05:20:21Z gravicappa joined #scheme 2021-04-06T05:21:08Z cybersyn` quit (Remote host closed the connection) 2021-04-06T05:25:23Z gambiteer quit (Ping timeout: 240 seconds) 2021-04-06T05:51:31Z DGASAU joined #scheme 2021-04-06T05:57:59Z klovett quit (Remote host closed the connection) 2021-04-06T05:58:16Z klovett joined #scheme 2021-04-06T05:59:35Z klovett quit (Remote host closed the connection) 2021-04-06T06:00:11Z klovett joined #scheme 2021-04-06T06:00:35Z klovett quit (Remote host closed the connection) 2021-04-06T06:00:53Z klovett joined #scheme 2021-04-06T06:03:27Z klovett quit (Remote host closed the connection) 2021-04-06T06:04:01Z klovett joined #scheme 2021-04-06T06:19:05Z shawnw quit (Ping timeout: 265 seconds) 2021-04-06T06:21:02Z indathrone joined #scheme 2021-04-06T06:25:37Z nly joined #scheme 2021-04-06T06:27:09Z snan: Re apply w/o Lisp (t99) funcall in Lisp-2 languages like Emacs Lisp and Common Lisp is sort of like that 2021-04-06T06:42:12Z cjb quit 2021-04-06T06:54:51Z s-video quit (Ping timeout: 265 seconds) 2021-04-06T06:56:16Z jobol joined #scheme 2021-04-06T06:57:29Z rgherdt joined #scheme 2021-04-06T07:04:29Z shawnw joined #scheme 2021-04-06T07:20:37Z marusich quit (Ping timeout: 268 seconds) 2021-04-06T07:22:36Z civodul joined #scheme 2021-04-06T07:52:15Z t99 joined #scheme 2021-04-06T07:56:33Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-06T08:07:00Z hendursaga joined #scheme 2021-04-06T08:09:57Z hendursa1 quit (Ping timeout: 240 seconds) 2021-04-06T08:33:06Z clog quit (Ping timeout: 260 seconds) 2021-04-06T08:43:46Z rmrfchi is now known as rmrfchik 2021-04-06T08:46:43Z badkins joined #scheme 2021-04-06T08:51:11Z badkins quit (Ping timeout: 260 seconds) 2021-04-06T09:06:45Z amirouche: hello #scheme :) 2021-04-06T09:15:52Z abralek quit (Read error: Connection reset by peer) 2021-04-06T09:16:05Z abralek joined #scheme 2021-04-06T09:18:18Z Aquazi joined #scheme 2021-04-06T09:22:06Z frost-lab quit (Ping timeout: 240 seconds) 2021-04-06T09:23:12Z jeko joined #scheme 2021-04-06T09:43:21Z wasamasa: hello 2021-04-06T09:44:52Z lritter joined #scheme 2021-04-06T09:45:47Z lockywolf: error: unhandled upcall [propogate-upcall] #{upcall-token user-session} 2021-04-06T09:52:52Z clog joined #scheme 2021-04-06T10:01:34Z skapate quit (Remote host closed the connection) 2021-04-06T10:05:57Z jeko quit (Quit: jeko) 2021-04-06T10:28:52Z midow quit (Read error: Connection reset by peer) 2021-04-06T10:29:19Z midow joined #scheme 2021-04-06T10:31:30Z lockywolf: what happens if you run (expand-file-name "~test" ".") in scsh? 2021-04-06T10:34:30Z DGASAU quit (Read error: Connection reset by peer) 2021-04-06T10:36:01Z m1dow joined #scheme 2021-04-06T10:37:57Z amirouche: Syntactic Abstraction: The syntax-case expander http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.304.7781 2021-04-06T10:40:03Z midow quit (Ping timeout: 260 seconds) 2021-04-06T10:40:40Z amirouche: I will be smart (again) 2021-04-06T10:59:28Z DGASAU joined #scheme 2021-04-06T11:08:33Z raingloom joined #scheme 2021-04-06T11:20:47Z epony quit (Quit: upgrades) 2021-04-06T11:25:28Z epony joined #scheme 2021-04-06T11:26:24Z frost-lab joined #scheme 2021-04-06T11:30:18Z badkins joined #scheme 2021-04-06T11:34:39Z badkins quit (Ping timeout: 260 seconds) 2021-04-06T12:02:34Z TCZ joined #scheme 2021-04-06T12:22:47Z ChoHag: Yay! There's quasiquotation added. 2021-04-06T12:23:03Z ChoHag: If anyone wants to stress-test it and find the buggy edge cases I'd appreciate it. 2021-04-06T12:30:37Z frost-lab quit (Quit: Connection closed) 2021-04-06T12:51:30Z mmmattyx joined #scheme 2021-04-06T13:06:10Z scm joined #scheme 2021-04-06T13:09:46Z jao joined #scheme 2021-04-06T13:09:51Z badkins joined #scheme 2021-04-06T13:28:01Z klovett quit (Remote host closed the connection) 2021-04-06T13:28:16Z klovett joined #scheme 2021-04-06T13:37:23Z raingloom quit (Ping timeout: 260 seconds) 2021-04-06T13:39:04Z paulj` joined #scheme 2021-04-06T13:39:53Z shawnw quit (Ping timeout: 265 seconds) 2021-04-06T13:40:02Z paulj` quit (Remote host closed the connection) 2021-04-06T13:40:41Z paulj` joined #scheme 2021-04-06T13:41:29Z raingloom joined #scheme 2021-04-06T13:41:35Z paulj` quit (Client Quit) 2021-04-06T13:41:58Z paulj joined #scheme 2021-04-06T14:02:41Z notzmv quit (Ping timeout: 268 seconds) 2021-04-06T14:16:25Z wklew joined #scheme 2021-04-06T14:17:12Z epony quit (Remote host closed the connection) 2021-04-06T14:18:40Z epony joined #scheme 2021-04-06T14:20:31Z notzmv joined #scheme 2021-04-06T14:30:35Z rj joined #scheme 2021-04-06T14:31:05Z TCZ quit (Quit: Dowidzenia) 2021-04-06T14:33:52Z TCZ joined #scheme 2021-04-06T14:35:45Z dinnu93 joined #scheme 2021-04-06T14:37:04Z dinnu93: Hello, wonderful people, Can someone tell me how can I start making websites with mit-scheme 2021-04-06T14:37:06Z dinnu93: ? 2021-04-06T14:39:18Z TCZ quit (Quit: Dowidzenia) 2021-04-06T14:42:57Z lockywolf: dinnu93, you can use (display) to output text to the terminal 2021-04-06T14:43:09Z lockywolf: that text may be html or javascript 2021-04-06T14:43:28Z dinnu93: Ok, and how about TCP, IP libraries ? 2021-04-06T14:43:55Z lockywolf: CGI? 2021-04-06T14:44:04Z lockywolf: make apache call your script, and that's it 2021-04-06T14:44:06Z dinnu93: lockywolf: Yup 2021-04-06T14:44:13Z lockywolf: no need to deal with the low-level stuff yourself 2021-04-06T14:44:42Z dinnu93: lockywolf: Ok, thanks mate, I'll try that approach and ask questions if I get stuck :) 2021-04-06T14:44:55Z lockywolf: it's not going to be easy, I promise 2021-04-06T14:45:01Z ChoHag: My new quasiquote code is leaving some junk on the stack I think :( 2021-04-06T14:45:18Z lockywolf: you can try GNU Artanis when you are tired enough 2021-04-06T14:45:43Z dinnu93: lockwolf: That's fine, I've got tons of time and patience, Thanks I'll look into GNU Artanis 2021-04-06T14:45:43Z lockywolf: https://gitlab.com/Lockywolf/scsh-xattr-mindmap 2021-04-06T14:46:15Z lockywolf: Scheme is a language that teaches you Zen 2021-04-06T14:46:22Z dinnu93: True 2021-04-06T14:46:40Z lockywolf: eventually static web starts seeming much better than is used to seem 2021-04-06T14:47:11Z lockywolf: anyway, if anybody wants to play with the simple filesystem visualizer I hacked as a toy, you're welcome 2021-04-06T14:47:13Z dinnu93: I hope so, with all this javascript mumbo jumbo, web feels like a shitfest right now 2021-04-06T14:47:27Z ChoHag: Only now? 2021-04-06T14:47:34Z lockywolf: in principle, you can join the fun 2021-04-06T14:47:45Z dinnu93: okay 2021-04-06T14:47:47Z lockywolf: you can compile Chibi-scheme into JS 2021-04-06T14:47:54Z lockywolf: and it has some JS-Scheme shim 2021-04-06T14:48:31Z lockywolf: never dug into it, and there are no actual DOM bindings, afair (I may be wrong) 2021-04-06T14:48:32Z dinnu93: That's good to know, I was about to write my own interpreter or transcompiler 2021-04-06T14:48:43Z dinnu93: Ok 2021-04-06T14:48:49Z lockywolf: idk, I enjoy bash now 2021-04-06T14:49:15Z dinnu93: Ok, I rarely come out of my emacs env these days 2021-04-06T14:49:51Z ChoHag: lockywolf: OpenBSD have turned ksh into a really nice sh without unpleasant gnuisms. 2021-04-06T14:49:57Z lockywolf: so, the visualizer generates a graphviz dot file from a directory, and it can deal with "some" unix nastiness, such as dangling symlinks 2021-04-06T14:50:11Z ChoHag: (fyi) 2021-04-06T14:50:12Z dinnu93: bash is awesome, a while back made my life simpler with a lot of custom commands for everything 2021-04-06T14:51:05Z Zipheir: It's all Bourne at heart. 2021-04-06T14:51:13Z lockywolf: unfortunately, the amount of dirty tricks I have invented to hide the most of boring files is not enough 2021-04-06T14:51:23Z lockywolf: so, additional hacks welcom 2021-04-06T14:51:24Z lockywolf: e 2021-04-06T14:52:08Z Zipheir: lockywolf: What is this project you're describing? 2021-04-06T14:52:12Z lockywolf: https://gitlab.com/Lockywolf/scsh-xattr-mindmap 2021-04-06T14:52:22Z lockywolf: Zipheir, ^ 2021-04-06T14:52:27Z Zipheir: Thanks. 2021-04-06T14:52:34Z lockywolf: it doesn't _actually_ use any xattrs yet 2021-04-06T14:53:24Z lockywolf: my original plan was to let xattrs store design features 2021-04-06T14:53:56Z Zipheir: It's a fun idea. 2021-04-06T14:54:54Z ChoHag: You might be starting with too many features. 2021-04-06T14:54:56Z lockywolf: I'm surprised I haven't found any existing implementations. 2021-04-06T14:55:42Z lockywolf: it's bound to be a pile of heuristics 2021-04-06T14:56:03Z acarrico joined #scheme 2021-04-06T14:56:53Z lockywolf: every time I am trying to model a human brain (and an FS is to me is essentially a model of my brain), I am discovering that human brains lack clear semantic 2021-04-06T14:57:09Z lockywolf: regretfully 2021-04-06T14:58:05Z ChoHag: Human brains make hard linked directories to an nfs server across a mountpoint look like a reasonable, normal thing. 2021-04-06T15:00:04Z lockywolf: I am actually using hard links at my laptop 2021-04-06T15:00:08Z ecraven: how do you hard link across mount points? 2021-04-06T15:01:12Z lockywolf: I do not think you can do that ... 2021-04-06T15:01:26Z Zipheir: Hard links are a pretty nice design and unfortunately neglected. 2021-04-06T15:01:47Z lockywolf: the "tool" takes into account hard links 2021-04-06T15:01:59Z lockywolf: the problem with hard links is that cp breaks them 2021-04-06T15:02:05Z bitmapper joined #scheme 2021-04-06T15:02:21Z lockywolf: almost everyone breaks them 2021-04-06T15:02:31Z Zipheir: lockywolf: It's not POSIX, but many cp's provide -l. 2021-04-06T15:02:39Z lockywolf: Emacs has backup-by-copying-when-linked 2021-04-06T15:02:43Z Zipheir: "hardlink only" 2021-04-06T15:03:11Z lockywolf: no, wait, I am wrong 2021-04-06T15:03:18Z lockywolf: cp is fine 2021-04-06T15:03:22Z klovett quit (Remote host closed the connection) 2021-04-06T15:03:28Z lockywolf: something else very popular breaks them 2021-04-06T15:03:51Z lockywolf: obviusly, git, but that can be worked around 2021-04-06T15:03:58Z ChoHag: ecraven: You can't. 2021-04-06T15:04:02Z klovett joined #scheme 2021-04-06T15:04:10Z ChoHag: The concept is meaningless. 2021-04-06T15:04:23Z ChoHag: Hence why brains make it look like a reasonable proposition. 2021-04-06T15:05:16Z ChoHag: Hardlinks *by definition* are within a single filesystem image, and by convention nobody allows hardlinked directories because that's pure insanity. 2021-04-06T15:05:16Z lockywolf: hard link across brains is like thinking that two people can have the same concept in their minds 2021-04-06T15:05:24Z amirouche: Implicit Phasing for R6RS Libraries (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.151.1568) 2021-04-06T15:05:31Z ChoHag: lockywolf: Mirror neurons. 2021-04-06T15:05:38Z ecraven: that's why I asked, I was wondering how to get a unified inode-space across devices ;) 2021-04-06T15:05:43Z lockywolf: ChoHag, you can easily patch Linux to allow hardlinked directories 2021-04-06T15:05:48Z ChoHag: ecraven: Mirror inodes. 2021-04-06T15:06:05Z lockywolf: in fact, hardlinked directories make much more sense than hardlinked files 2021-04-06T15:06:49Z lockywolf: except your filesystem tree turns into a filesystem graph 2021-04-06T15:07:01Z lockywolf: which is still fine if it is acyclical 2021-04-06T15:07:12Z lockywolf: fine in the sense that `find` would terminate 2021-04-06T15:08:11Z ChoHag: There would be Words if you tried that on any of my systems. 2021-04-06T15:09:03Z lockywolf: you can make `find` do Dijkstra instead of dfs 2021-04-06T15:09:19Z amirouche: what does mount --bind do ? 2021-04-06T15:09:39Z amirouche: hardlink are written to the disk? 2021-04-06T15:09:53Z lockywolf: mount --bind does not modify the file system 2021-04-06T15:10:04Z lockywolf: it only mangles the name 2021-04-06T15:10:10Z ChoHag: mount --bind, effectively, 'creates' a hard-linked directory at runtime. 2021-04-06T15:10:32Z lockywolf: it's not hardlinked, it has a different file-device 2021-04-06T15:10:37Z ChoHag: But with extra restrictions and disregarding crossing mountpoints. 2021-04-06T15:11:02Z lockywolf: from the (stat) point of view, it's still a different device 2021-04-06T15:11:12Z lockywolf: sorry, (file-info) 2021-04-06T15:11:35Z Zipheir: Mount one point of the filesystem at another. 2021-04-06T15:12:07Z Zipheir: Bind mounts get rid of one use for symlinks, at least (linking directories). 2021-04-06T15:12:10Z lockywolf: sorry, yes, if it is a bind within one FS, it looks like a hard link 2021-04-06T15:12:21Z ChoHag: If the (whole) *virtual* filesystem. 2021-04-06T15:12:32Z ChoHag: Although probably not the magic FSs. 2021-04-06T15:14:19Z amirouche: once I mount --bind / /some/directory, I forgot the bind, and tried: rm -rf /some 2021-04-06T15:14:27Z lockywolf: find: File system loop detected; ‘./test2’ is part of the same file system loop as ‘.’. 2021-04-06T15:14:34Z amirouche: that was the second time I deleted / 2021-04-06T15:14:47Z ChoHag: I did something like that with a samba mount. 2021-04-06T15:15:15Z ChoHag: Only lost a days work or so. I've only ever deleted / intentionally, to see what happens. 2021-04-06T15:15:29Z gwatt: was it everything you'd hoped for? 2021-04-06T15:15:40Z amirouche: I lost nothing, but spent 2 hours re-installing everything. 2021-04-06T15:15:41Z ChoHag: Without doing it on a live system, it was very boring. 2021-04-06T15:16:01Z lockywolf: yes, loop-like bind-mounts for scsh-xattrs are not supported 2021-04-06T15:16:19Z ChoHag: "I'm going to destroy this VM, let's delete / and see what it does... Oh. Carries on as if nothing had happened..." 2021-04-06T15:16:23Z lockywolf: patches welcom 2021-04-06T15:16:24Z lockywolf: e 2021-04-06T15:16:45Z rj quit (Ping timeout: 240 seconds) 2021-04-06T15:17:48Z snan: I can't believe (setq backup-by-copying t) isn't the default on emacs anyway 2021-04-06T15:18:25Z ChoHag: Someone probably relied on the default behaviour once so it's stuck forever. 2021-04-06T15:19:10Z DGASAU quit (Read error: Connection reset by peer) 2021-04-06T15:19:45Z DGASAU joined #scheme 2021-04-06T15:21:07Z rj joined #scheme 2021-04-06T15:28:26Z ecraven: what does it do if it's *not* copying? 2021-04-06T15:29:25Z jao quit (Ping timeout: 260 seconds) 2021-04-06T15:29:56Z klovett quit (Remote host closed the connection) 2021-04-06T15:30:15Z klovett joined #scheme 2021-04-06T15:30:40Z snan: The original is renamed to the backup file and the new file gets the original's name. It's messed up. 2021-04-06T15:31:59Z amirouche: hence, it copying? 2021-04-06T15:32:51Z s-video joined #scheme 2021-04-06T15:33:39Z snan: With backup-by-copying set to t, the backup tilde file is the copy and the original is the original. 2021-04-06T15:33:39Z snan: With it set to nil, the default (whyyyy!!!), the backup tilde file is the original and the original file name is a new file. 2021-04-06T15:35:22Z badkins quit (Remote host closed the connection) 2021-04-06T15:35:35Z snan: I only learned about this a few months ago. So that's why my hard links have been messed up all these years. 2021-04-06T15:35:37Z lockywolf: in fact now that I'm thinking about it, most of the visualiser could have been written in chibi 2021-04-06T15:36:30Z lockywolf: but (chibi filesystem) doesn't (at least officially) support symbolic links 2021-04-06T15:36:37Z amirouche: snan: that makes sense! 2021-04-06T15:37:15Z snan: amirouche: as in it doesn't? 2021-04-06T15:37:16Z lockywolf: it's not just Emacs 2021-04-06T15:37:32Z badkins joined #scheme 2021-04-06T15:38:29Z amirouche: snan: it makes more sense that the backup file contains the changes. 2021-04-06T15:38:43Z lockywolf: finding who exactly breaks your hardlinks is not easy 2021-04-06T15:39:15Z amirouche: I never use hardlinks. 2021-04-06T15:40:18Z Zipheir: snan: So the inode changes every time emacs backs up the file? Ugh. 2021-04-06T15:40:46Z lockywolf: if anybody hacks the support for softlinks into chibi, perhaps a port can be quite easy 2021-04-06T15:40:53Z Zipheir: amirouche: At least they aren't the path of misery that is symlinks. 2021-04-06T15:41:10Z lockywolf: synaptic links 2021-04-06T15:41:15Z lockywolf: symphonic links 2021-04-06T15:41:33Z lockywolf: sorry, symbolic links 2021-04-06T15:42:06Z snan: Zipheir: exactly. So backwards 2021-04-06T15:42:31Z Zipheir: When you think about avoiding changes that break compatibility, imagine adding a new kind of file to an OS such that *everything* has to be rewritten to account for your change. 2021-04-06T15:42:35Z badkins quit (Ping timeout: 268 seconds) 2021-04-06T15:43:43Z Zipheir: (Thanks, Bezerkley.) 2021-04-06T15:43:51Z nly quit (Ping timeout: 260 seconds) 2021-04-06T15:44:13Z badkins joined #scheme 2021-04-06T15:44:21Z Zipheir: Actually, I don't know. Maybe symlinks predate the BSDs. 2021-04-06T15:44:54Z gwatt: wikipedia says 78 2021-04-06T15:46:08Z TCZ joined #scheme 2021-04-06T15:46:12Z lockywolf: it's not hard to make "self-updating" symlinks with xatrrs and a patched "locate" 2021-04-06T15:47:11Z lockywolf: if you those are not mission-critical 2021-04-06T15:52:17Z jcowan: THere's nothing absurd about directory hard links, they just require a filesystem GC, and such things have been written 2021-04-06T15:53:19Z jcowan: I once wrote a whole server-side application which depending on file hardlinks: each paying user had their own directory tree, and the files (news articles) which they had paid to access were hardlinked into that tree. 2021-04-06T16:04:34Z Zipheir: I think "Hardlink" would be a good name for a news application. 2021-04-06T16:07:27Z ChoHag: It would be impossible to find any information on it. 2021-04-06T16:19:52Z notzmv quit (Ping timeout: 265 seconds) 2021-04-06T16:27:18Z t99 quit (Ping timeout: 240 seconds) 2021-04-06T16:38:55Z badkins quit (Remote host closed the connection) 2021-04-06T16:42:13Z badkins joined #scheme 2021-04-06T16:53:41Z gwatt: I thought the dislike of directory hardlinks was more to do with cycle detection than anything else. Whereas symlinks can be detected with fstat 2021-04-06T16:59:30Z TCZ quit (Quit: Dowidzenia) 2021-04-06T17:04:06Z elflng quit (Ping timeout: 240 seconds) 2021-04-06T17:05:54Z notzmv joined #scheme 2021-04-06T17:07:06Z amirouche: okvs as hard disk, when? 2021-04-06T17:07:24Z iv4nshm4k0v joined #scheme 2021-04-06T17:11:12Z Zipheir: cf. Oleg's Zipper FS idea. 2021-04-06T17:11:30Z Zipheir: http://okmij.org/ftp/continuations/zipper.html#zipper-fs 2021-04-06T17:13:58Z jcowan: Cycle detection during navigation isn't really a problem, because each step consumes a single item of a finite path. It's what to do when a directory is deleted that requires GC, but it can be greatly reduced by keeping a reference count slot that holds at least the proper value. Then a concurrent mark-and-sweep GC can be run when a disk is close to filling up, which will only happen when there is an *isolated* cycle. 2021-04-06T17:18:28Z gwatt: jcowan: > Cycle detection during navigation isn't really a problem, because each step consumes a single item of a finite path. 2021-04-06T17:21:06Z gwatt: But if you have to traverse a full directory structure, like with find, you still have to detect cycles 2021-04-06T17:23:43Z amirouche: Zipheir: ty for the link. 2021-04-06T17:32:14Z notzmv quit (Read error: Connection reset by peer) 2021-04-06T17:44:56Z gravicappa quit (Ping timeout: 265 seconds) 2021-04-06T17:46:06Z acarrico quit (Ping timeout: 260 seconds) 2021-04-06T17:46:35Z gravicappa joined #scheme 2021-04-06T17:51:32Z t99 joined #scheme 2021-04-06T17:53:43Z acarrico joined #scheme 2021-04-06T17:55:12Z abralek quit (Quit: CoreIRC for Android - www.coreirc.com) 2021-04-06T17:56:46Z acarrico quit (Client Quit) 2021-04-06T17:57:13Z abralek_ joined #scheme 2021-04-06T18:12:56Z notzmv joined #scheme 2021-04-06T18:22:41Z t99 quit (Ping timeout: 240 seconds) 2021-04-06T18:25:08Z t99 joined #scheme 2021-04-06T18:27:12Z dinnu93 quit (Remote host closed the connection) 2021-04-06T18:36:15Z badkins quit (Remote host closed the connection) 2021-04-06T18:38:35Z amirouche: I ma not sure how zipper fs is better than a general purpose datastructure such as okvs. 2021-04-06T18:39:24Z ChoHag: Because it's turing complete! So you can get away with shrugging and saying "I dunno why your data's not ready yet". 2021-04-06T18:40:16Z ChoHag: data aren't... 2021-04-06T18:40:44Z badkins joined #scheme 2021-04-06T18:40:51Z amirouche: There is several problems with the current FS, and the limited hierarchy, and poor transactional semantic. 2021-04-06T18:41:08Z amirouche: The problem with hierarchy is certainly people can only think in terms of trees. 2021-04-06T18:41:41Z ChoHag: I don't think there's a problem with filesystems. 2021-04-06T18:41:41Z amirouche: and everything beyond a tree is meh. Same thing goes with SQL, everything beyond tables and pointers goes meh. 2021-04-06T18:41:52Z ChoHag: I think the problem is that we expect users to interact with them. 2021-04-06T18:42:15Z amirouche: The other problem is indeed an ux problem. 2021-04-06T18:42:30Z amirouche: End-user, me included, do not want to think in terms of trees. 2021-04-06T18:43:06Z amirouche: the shell, via PATH and whatever tricks, aleviate the problem. but still. 2021-04-06T18:43:09Z jao joined #scheme 2021-04-06T18:43:31Z amirouche: Also the shell syntax is not error proof, and limited compared to s-exp. 2021-04-06T18:43:49Z ChoHag: The shell syntax is perfectly error-proof. 2021-04-06T18:43:55Z ChoHag: Provided you use it perfectly. 2021-04-06T18:44:15Z amirouche: even, the non structured terminal output is a problem imo. 2021-04-06T18:44:18Z ChoHag: It's not really a user tool. 2021-04-06T18:44:58Z badkins quit (Ping timeout: 240 seconds) 2021-04-06T18:45:03Z amirouche: it can be a user tool, but I want more interactivity, without the burden of doing everything with the browser. The browser got that correctly: view-source, debugger. 2021-04-06T18:45:12Z ChoHag: Well I'm trying. 2021-04-06T18:45:25Z amirouche: trying? 2021-04-06T18:45:34Z skapata joined #scheme 2021-04-06T18:45:44Z ChoHag: I am trying to build something more or less like that. 2021-04-06T18:46:11Z amirouche: it worrying there is thick frontier between the world of programming and GUIs. 2021-04-06T18:46:15Z amirouche: ChoHag: interesting. 2021-04-06T18:46:18Z ChoHag: There is. 2021-04-06T18:46:32Z ChoHag: Have you seen OpenGL? 2021-04-06T18:46:43Z amirouche: not really, why? 2021-04-06T18:46:48Z ChoHag: It's ... nuts. 2021-04-06T18:46:55Z amirouche: and ? 2021-04-06T18:46:55Z ChoHag: It's right, but it's nuts. 2021-04-06T18:47:01Z ChoHag: Also it has History. 2021-04-06T18:47:14Z ChoHag: And it's basically the state of the art. 2021-04-06T18:47:27Z ChoHag: AFAICT it's the machine code of graphics programming. 2021-04-06T18:47:39Z amirouche: yes, that is what I read too. 2021-04-06T18:48:05Z amirouche: but that is rather low-level and very specific to get hardware acceleration to get 3d spinning desktop. 2021-04-06T18:48:21Z ChoHag: Well yes and no. 2021-04-06T18:48:52Z ChoHag: It's low-level from the perspective of a GUI. 2021-04-06T18:48:58Z amirouche: what are you trying to do? did you write something about it? 2021-04-06T18:49:00Z ChoHag: Not so low from a UI's perspective. 2021-04-06T18:49:40Z ChoHag: Somewhere I started a opengl-to-lispish link. I can't remember where I put it. 2021-04-06T18:50:19Z ChoHag: It wasn't working which is why I turned to writing my own scheme implementation that I can plug things into. 2021-04-06T18:50:48Z amirouche: the main problem I see, and browser re-do the same mistake, is they are too many levels between UI and programming. 2021-04-06T18:50:54Z amirouche: (also bigger screens will help) 2021-04-06T18:51:01Z ChoHag: Something about getting FFI to work right. I can't remember what my problem was now. 2021-04-06T18:51:19Z amirouche: do you agree that bigger screens will help? 2021-04-06T18:51:25Z Zipheir: UIs are really hard. 2021-04-06T18:51:33Z klovett quit (Remote host closed the connection) 2021-04-06T18:51:34Z ChoHag: Zipheir: Extraordinarily. 2021-04-06T18:51:39Z amirouche: why is that? 2021-04-06T18:51:51Z ChoHag: Because they have to deal with humans. 2021-04-06T18:52:04Z amirouche: so does programming, and scheme got it right. 2021-04-06T18:52:10Z Zipheir: Pfft. 2021-04-06T18:52:12Z klovett joined #scheme 2021-04-06T18:52:16Z ChoHag: Programming is to let humans deal with CPUs. 2021-04-06T18:52:23Z ChoHag: GUIs is the other way around. 2021-04-06T18:52:40Z ChoHag: Also scheme is lacking in some areas. 2021-04-06T18:52:47Z Zipheir: Even CLIs are hard to get right. You've got to translate a list of strings into some kind of configuration for what your program is going to compute. 2021-04-06T18:53:11Z Zipheir: And that's probably the easiest-known UI that deserves the name. 2021-04-06T18:53:28Z amirouche: CLI is similar to a procedure signature or a set of procedures inside a library, the only that change is: syntax. 2021-04-06T18:53:44Z ChoHag: CLI is a UI. 2021-04-06T18:53:50Z ChoHag: It's a UI with conventions. 2021-04-06T18:53:51Z Zipheir: amirouche: I don't understand that comparison. 2021-04-06T18:54:09Z amirouche: what does a UI do, that a procedure can not do? 2021-04-06T18:54:25Z amirouche: ChoHag: yes. 2021-04-06T18:54:29Z Zipheir: amirouche: OK, I think I see what you mean. 2021-04-06T18:55:12Z Zipheir: amirouche: Maybe it's accurate, then, to compare many CLI tools to procedures with dozens (or hundreds!) of optional arguments that may interact in complex ways. 2021-04-06T18:55:29Z amirouche: yes 2021-04-06T18:55:46Z amirouche: That is what I call interface, but arguably the text interface is also limited depending on the use case, lockywolf program to display a fs 2021-04-06T18:56:00Z amirouche: text alone can not do it in a way that easy to grasp 2021-04-06T18:56:57Z Zipheir: But graphic interfaces are usually modeled by some loop-coroutine that controls the computation, and that's so much more complicated. 2021-04-06T18:57:05Z hive-mind quit (Ping timeout: 260 seconds) 2021-04-06T18:57:19Z amirouche: That what I used to think. 2021-04-06T18:57:59Z amirouche: They are ways around that complexity if you can not wrap it. 2021-04-06T18:58:09Z ChoHag: This is to some extent the problem I'm trying to tackle: programming languages and programming environments are highly disjointed. 2021-04-06T18:58:17Z amirouche: e.g. what termbox does. 2021-04-06T18:59:17Z Zipheir: Maybe the heart of the problem is that I/O is hard to model, period. 2021-04-06T18:59:25Z notzmv quit (Ping timeout: 252 seconds) 2021-04-06T18:59:42Z amirouche: really, the problem is not how the interface is built (event loop, event callbacks etc...) but what you make use of it. The world of creativity enabled in programming world is locked inside CLI sometime TUIs, whereas users are locked inside boxes without a way to escape. 2021-04-06T19:00:35Z amirouche: There is really few programs that enabled the level of creativity of a programming language such as glimpse, fruity loop, audacity.. 2021-04-06T19:00:51Z ChoHag: Again, I'm trying! It's a hard problem to solve. 2021-04-06T19:00:52Z amirouche: but again, they are considered expert tools. 2021-04-06T19:00:59Z amirouche: ChoHag: code quick! 2021-04-06T19:01:07Z Zipheir: CLIs provide a language in which to be creative. If you think that's a cage, Shakespeake may want a word with you. 2021-04-06T19:01:10Z ChoHag: And there are dishes to wash and other daily crud. 2021-04-06T19:01:22Z amirouche: ^^ 2021-04-06T19:01:43Z ChoHag: amirouche: http://zeus.jtan.com/~chohag/lossless.pdf & http://zeus.jtan.com/~chohag/lossless.git is what I've got so far. 2021-04-06T19:02:23Z ChoHag: Help me find where quasiquotation is (I think) leaving something on the stack. 2021-04-06T19:03:04Z amirouche: ChoHag: so, you want to create a new desktop or ui paradigm and you write your own scheme? 2021-04-06T19:03:06Z amirouche: seems relatable! 2021-04-06T19:03:16Z amirouche: but also wrong! 2021-04-06T19:03:20Z ChoHag: The main thrust of the VM, inasmuch as it matter to a UI, is making code that's interruptible at any point. 2021-04-06T19:03:40Z ChoHag: So that the user's I can have a "switch to developer mode" button on any widget. 2021-04-06T19:03:46Z amirouche: hmm 2021-04-06T19:03:51Z ChoHag: NeWS did something similar. 2021-04-06T19:04:12Z amirouche: you can not emulate it with an event loop with an existing scheme? (maybe naive question) 2021-04-06T19:04:37Z ChoHag: Then there is no IDE because the IDE is the UI. 2021-04-06T19:04:44Z amirouche: hm interesting! 2021-04-06T19:04:59Z amirouche: what do you think of worrydream ideas? 2021-04-06T19:05:05Z ChoHag: ... I have a long way to go. 2021-04-06T19:05:20Z ChoHag: I have no idea what they are. 2021-04-06T19:05:49Z amirouche: Brett Victor ring a bell? 2021-04-06T19:05:59Z ChoHag: I don't do names. 2021-04-06T19:06:07Z amirouche: http://worrydream.com/#!/LearnableProgramming 2021-04-06T19:07:26Z amirouche: that is an idea, but it remnids me that we and I spend too much time working and reworking the same ideas.. 2021-04-06T19:07:29Z ChoHag: This will require some reading. 2021-04-06T19:08:45Z ChoHag: We do. 2021-04-06T19:09:01Z ChoHag: I'm rewriting code that was invented ~50 years ago. 2021-04-06T19:09:26Z ChoHag: But we persist in writing thing in C and descendents. 2021-04-06T19:09:38Z ChoHag: things 2021-04-06T19:09:47Z hive-mind joined #scheme 2021-04-06T19:10:08Z Zipheir: Oh jeez. This seems pretty silly. 2021-04-06T19:10:28Z Zipheir: I bet this person loves Python. 2021-04-06T19:11:27Z amirouche: that is the same idea that makes me follow minikaren and barliman, that triggered my interest in worrydream ideas. 2021-04-06T19:11:27Z aeth quit (Ping timeout: 265 seconds) 2021-04-06T19:11:55Z amirouche: barliman is exactly, that: you give it example, it given skeleton procedure that you can skult. 2021-04-06T19:12:02Z aeth joined #scheme 2021-04-06T19:12:14Z amirouche: it is interactive, more than a mere REPL. 2021-04-06T19:12:23Z Zipheir: Well, it's an experiment in Scheme code-inference. 2021-04-06T19:12:30Z amirouche: And that is the kind of new ideas that are very interesting, that should be investigated. 2021-04-06T19:12:33Z ChoHag: I'm extremely wary of the idea of "an existing thing you can mould". 2021-04-06T19:12:47Z Zipheir: amirouche: Are you familiar with typed holes? 2021-04-06T19:12:53Z amirouche: no 2021-04-06T19:12:55Z ChoHag: Possibly programming can be understood without understanding a state machine but I'm not sure. 2021-04-06T19:13:12Z amirouche: ChoHag: you do not necessarly need to start with a state machine. 2021-04-06T19:13:23Z ChoHag: Not start with, no. 2021-04-06T19:13:23Z amirouche: except that how I was teached programming.. 2021-04-06T19:14:10Z Zipheir: amirouche: You can write an expression with 'TODO' or '?' symbols instead of terms, and the language will treat those as having the correct type for inference purposes; they can be filled in manually, or through more inference. 2021-04-06T19:14:21Z amirouche: We can rethink the whole learning process, and create the tool to help better learning that includes a different way to teach programming such as it does not come last in the curriculum. 2021-04-06T19:14:29Z Zipheir: Agda and Pie (The Little Typer) have holes. 2021-04-06T19:14:55Z gwatt: I think ghc does as well 2021-04-06T19:14:59Z Zipheir: Oh, cool. 2021-04-06T19:15:33Z ChoHag: I'm not sure how much programming should be learned by doing vs. how much it should be learned by learning. 2021-04-06T19:15:53Z Zipheir: amirouche: The problem I have with the worrydream stuff is that he doesn't seem to think that any kind of mathematical framework for programming is important. It's all "learn stuff" by "making meaning transparent", etc, etc. 2021-04-06T19:15:56Z ChoHag: Also I think that's subjective depending on the learner. 2021-04-06T19:16:11Z Zipheir: It's like learing differentiation by playing with sliders, it seems. 2021-04-06T19:16:32Z ChoHag: Zipheir: Yes, that. 2021-04-06T19:16:57Z ChoHag: But some people do learn differentiation that way, so don't dismiss the method too quickly. 2021-04-06T19:17:18Z Zipheir: I mean, that page is full of examples computing some mathematical expression, yet he never bothers to talk about the meaning of the expression! It's all like "what does it look like?" 2021-04-06T19:18:01Z ChoHag: Sorry I haven't read it yet. I've earmaked it for "over coffee". 2021-04-06T19:18:07Z Zipheir: Oh, sure. As long as the actual explanation shows up at some point. 2021-04-06T19:18:40Z amirouche: Zipheir: mathematics is not only formal notion. 2021-04-06T19:18:50Z amirouche: s/notion/notation/ 2021-04-06T19:19:12Z ChoHag: Mathematics is about conveying understanding. 2021-04-06T19:19:24Z amirouche: Never read that but I agree. 2021-04-06T19:19:32Z Zipheir: amirouche: Do you know any non-mathematical formalizations of programming? 2021-04-06T19:19:37Z Zipheir: I suppose OOP counts. 2021-04-06T19:20:02Z amirouche: The turing machine metaphor 2021-04-06T19:20:09Z aeth quit (Ping timeout: 265 seconds) 2021-04-06T19:20:26Z amirouche: it is not a math concept, except the fact that the paper is infinite. 2021-04-06T19:20:47Z amirouche: it just a state machine with graphical explanation. 2021-04-06T19:20:51Z Zipheir: Turing reasoned about them mathematically. 2021-04-06T19:20:54Z aeth joined #scheme 2021-04-06T19:21:03Z Zipheir: This gets into "what is mathematics?", of course. 2021-04-06T19:21:12Z amirouche: yes, but they turned the math concept into an idea that can be explained to a layman person. 2021-04-06T19:21:38Z Zipheir: Lay people should learn more mathematics! 2021-04-06T19:21:40Z amirouche: the state machine says : "if you are here, you can go there or there" that simple. 2021-04-06T19:21:46Z amirouche: I agree! 2021-04-06T19:21:46Z ChoHag: I'd go for "explaining a concept you came up with so others can understand it". 2021-04-06T19:22:07Z Zipheir: Yes. 2021-04-06T19:22:29Z ChoHag: And that's why my prose is terrible :( 2021-04-06T19:22:49Z ChoHag: *I* don't understand it. 2021-04-06T19:23:30Z Zipheir: Well, as that excellent University of Chicago writing lecture says, writing is always for communicating with some specific audience. 2021-04-06T19:24:02Z Zipheir: If your community is not so mathematically-inclined, "if you are here, you can go there" may be the best way to explain the thing. 2021-04-06T19:25:45Z Zipheir: (Actually, even if they are. Plenty of examples in textbooks handwave state completely.) 2021-04-06T19:30:16Z Zipheir: I forgot what point I thought I was making there. Sorry for derailing the previous convo. 2021-04-06T19:32:44Z badkins joined #scheme 2021-04-06T19:34:06Z ChoHag: It's alright. 2021-04-06T19:34:12Z ChoHag: That didn't have one either. 2021-04-06T19:35:08Z t99 quit (Ping timeout: 265 seconds) 2021-04-06T19:42:16Z notzmv joined #scheme 2021-04-06T19:45:49Z iltutmus quit (Quit: ZNC 1.7.4 - https://znc.in) 2021-04-06T19:45:59Z iltutmus joined #scheme 2021-04-06T19:47:05Z notzmv quit (Ping timeout: 246 seconds) 2021-04-06T19:50:41Z lritter quit (Ping timeout: 240 seconds) 2021-04-06T19:51:28Z badkins quit (Remote host closed the connection) 2021-04-06T20:00:48Z m1dow quit (Quit: KVIrc 5.0.1 Aria http://www.kvirc.net/) 2021-04-06T20:01:18Z badkins joined #scheme 2021-04-06T20:05:28Z TCZ joined #scheme 2021-04-06T20:11:23Z gravicappa quit (Ping timeout: 265 seconds) 2021-04-06T20:13:08Z notzmv joined #scheme 2021-04-06T20:17:30Z t99 joined #scheme 2021-04-06T20:23:49Z sm2n quit (Read error: Connection reset by peer) 2021-04-06T20:23:50Z sm2n_ joined #scheme 2021-04-06T20:23:52Z sm2n_ is now known as sm2n 2021-04-06T20:37:26Z dpk: Turing's Entscheidungsproblem paper is *extremely* mathematical 2021-04-06T20:38:35Z eddof13 joined #scheme 2021-04-06T20:40:50Z dieggsy: Does there exist a more strictly typed variant of 'scheme' out there ? 2021-04-06T20:41:04Z dieggsy: i've been playing with ocaml and just thinking out loud lol 2021-04-06T20:41:21Z sudden quit (Ping timeout: 265 seconds) 2021-04-06T20:41:29Z dieggsy: like if there was a language with scheme-like syntax/standard library but with inferred static typing 2021-04-06T20:41:47Z dieggsy: ...i know that would change enough that it wouldn't be scheme enough, but it'd still be cool to see 2021-04-06T20:41:56Z dieggsy: scheme anymore* 2021-04-06T20:42:09Z sudden joined #scheme 2021-04-06T20:42:57Z dpk: (disappointed tbh that the Bank of England didn't put the quote ‘There can be no machine 𝔔’ (concluding words of his proof of the undecidability of the halting problem) on the £50 note) 2021-04-06T20:44:08Z tatsumaru joined #scheme 2021-04-06T20:44:53Z tatsumaru: hey guys, what are your general thoughts about rust? is it a legit improvement over c/c++ or just hype? 2021-04-06T20:46:17Z justinethier joined #scheme 2021-04-06T20:47:02Z Wezl: tatsumaru: It looks like an improvement, but not enough for me to learn something so big 2021-04-06T20:47:42Z Wezl: (I tried, but it wasn't that fun) 2021-04-06T20:48:30Z dpk: Zig looks like a significantly cleaner approach to the same problem space (no gnarly borrowing but still memory safe), but alas Rust has corporate sponsorship and an evangelism task force, meaning it's well on the way to becoming the Java of the 2020s 2021-04-06T20:48:46Z dpk: yeah, my experience with Rust was very much of the 'not fun' variety, as well 2021-04-06T20:48:55Z dpk: C may be dangerous but it's never not fun 2021-04-06T20:49:10Z tatsumaru: what makes Rust not fun? 2021-04-06T20:49:15Z DGASAU quit (Read error: Connection reset by peer) 2021-04-06T20:49:49Z dpk: i think a large number of inscrutable compile error messages and long compile times 2021-04-06T20:49:58Z dieggsy: .....huh 2021-04-06T20:50:06Z dieggsy: I rather liked my experience with rust? 2021-04-06T20:50:14Z dpk: if you get a compiler error in C, you slap yourself on the forehead and fix the problem in 30 seconds 2021-04-06T20:50:21Z dieggsy: I mean, I wrote like a dozen simple programs, I haven't worked with it extensively 2021-04-06T20:50:40Z dieggsy: But I found it fun enough, heh. And I found it's error messages to be quite nice actually 2021-04-06T20:50:40Z edgar-rft: My general thoughts about rust is that I remember some song where I heard that rust never sleeps. But hey, what kind of answer do you expect in a channel that's neither related ro rust nor C? 2021-04-06T20:50:57Z tatsumaru: dpk do you think rust was written for people who were too lazy to learn proper C? 2021-04-06T20:51:05Z dieggsy: I dunno, I like that rust has a sort of more functional /feel/ to it than C++/C 2021-04-06T20:51:05Z dpk: no, because it's harder than C 2021-04-06T20:51:13Z dpk: dieggsy: to each their own 2021-04-06T20:51:21Z dieggsy: i mean, this is all subjective 2021-04-06T20:51:30Z dpk: i do know a lot of good hackers like Rust 2021-04-06T20:53:03Z dieggsy: tatsumaru: can't go wrong just trying it 2021-04-06T20:55:04Z DGASAU joined #scheme 2021-04-06T20:55:14Z tatsumaru: i usually ask questions like that here, because there a lot of CS people here who understand the deeper qualities of computing and can give a more educated answer rather than just fanboy stuff 2021-04-06T20:55:20Z tatsumaru: there are* 2021-04-06T20:55:44Z dpk: the difficulties in C — memory safety, to use that as a blanket term — are real problems with C and there's a definite need for languages which solve them 2021-04-06T20:56:17Z dpk: but i'm somewhat bitter that what i consider one of the worse attempts in that direction has got the most attention 2021-04-06T20:56:27Z dpk: as you can probably tell from what i wrote above 2021-04-06T20:57:45Z dieggsy: tatsumaru: Sure, but at the end of the day, keep in mind informed opinions are still opinions. If you try a language and you like it or it suits your needs, no reason not to go for it. Rust /does/ have an unhealthy amount of hype around it though - "Rewrite of [X Software] in Rust? Why Rust? Well, [8 pages of fluff that can be summarized by 'Rust rules your language drools']" 2021-04-06T20:57:46Z gwatt: I was under the impression that rust was designed by C++ programmers at mozilla who no longer wanted to write C++. 2021-04-06T20:57:59Z dieggsy: That said, I do think it's neat. And that said, I do use C a good amount more than I use Rust lol 2021-04-06T20:59:04Z gwatt: And while rust wasn't initially designed to replace C, it competes for the same space. 2021-04-06T20:59:12Z tatsumaru: dpk are you primarily concerned with compile times? 2021-04-06T20:59:43Z tatsumaru: gwatt: linus torvalds said he thought c was great but c++ sucked 2021-04-06T21:02:22Z dieggsy: There's a not unimportant an aspect of just what the current state of things actually is. You may think it sucks, but if 80% of the companies in the world are using it... uh, I mean. That's that I guess. Like, I have quite a strong love hate relationship with Python because it's extremely practical, but I kinda dislike it as a language. Of course, it's only that practical because it's so popular, but. /shrug 2021-04-06T21:02:50Z gwatt: tatsumaru: Yep. I'm not making a value judgement on which language is better, just noting that C, C++, rust, and others compete for the same areas of programming 2021-04-06T21:03:06Z dieggsy: End of the day, use what you like. (chicken scheme. chicken scheme is what you like. heh ;) 2021-04-06T21:03:23Z tatsumaru: dieggsy I am not concerned with the commercial aspect of programming as I am not a programmer by trade, I only program to understand how systems work better. it's a hobby. 2021-04-06T21:03:32Z dieggsy: tatsumaru: Me too 2021-04-06T21:03:32Z gwatt: dieggsy: As the saying goes: there are langauges that everyone complains about and there are languages that no one uses 2021-04-06T21:04:15Z dieggsy: tatsumaru: but how easy it is to get stuff done in a language is often a factor of how popular it is, commercially or not 2021-04-06T21:04:27Z dieggsy: er, or the other way around 2021-04-06T21:04:40Z dieggsy: bit of a cycle really i guess 2021-04-06T21:05:02Z vv8 quit (Ping timeout: 265 seconds) 2021-04-06T21:05:28Z tatsumaru: dieggsy, no doubt about that. but that's mostly important for when you want to become a part of an existing culture, if you are starting something new or building something new from scratch you have the freedom to look for novelty and cutting edge solutions that lack libraries and support. 2021-04-06T21:06:02Z dieggsy: tatsumaru: Sure. Depends how easy you want it to be to build that thing. It depends on your goals, really 2021-04-06T21:06:23Z dieggsy: Like, if your goal is to /get something new done now/ to look at the pretty results it produces, that's different from /experimenting with writing a new system from scratch in language that came out yesterday/ 2021-04-06T21:06:34Z dieggsy: There's a use case for either, it's not better or worse 2021-04-06T21:07:01Z badkins quit (Remote host closed the connection) 2021-04-06T21:07:40Z tatsumaru: my goal would be to learn something new that teaches me in what way the current practices are obsolete but no one or few people realize it yet 2021-04-06T21:07:53Z dieggsy: I find just /the act of programming/ fun, so I might be often inclined towards the latter, but there's always tradeoffs 2021-04-06T21:08:44Z tatsumaru: i am mostly inspired by innovation really. not anything new, but new that's better. then I can come up with ideas regarding how to make it practical in the form of a product. 2021-04-06T21:08:54Z dieggsy: Ah 2021-04-06T21:08:58Z dieggsy: I'm not product oriented at all 2021-04-06T21:09:04Z dieggsy: I just have fun typing at my keyboard, basically 2021-04-06T21:09:11Z dieggsy: the results and the knowledge are just bonus side effects lol 2021-04-06T21:09:40Z dieggsy: well, and i have fun problem solving in general i guess 2021-04-06T21:11:17Z tatsumaru: also for whatever reason I get excited about learning things that are not popular at all 2021-04-06T21:11:45Z tatsumaru: although rust doesn't seem to fit that description 2021-04-06T21:20:18Z gnomon quit (Ping timeout: 240 seconds) 2021-04-06T21:21:39Z TCZ quit (Quit: Dowidzenia) 2021-04-06T21:22:58Z Zipheir: Ada looks to me like what Rust hopes to be, someday. 2021-04-06T21:24:06Z tatsumaru: Zipheir, do you like Ada? 2021-04-06T21:25:26Z gnomon joined #scheme 2021-04-06T21:27:02Z Zipheir: Yes. It's an elegant imperative language very much like Pascal. 2021-04-06T21:27:26Z gnomon_ joined #scheme 2021-04-06T21:28:33Z Zipheir: "In ten years there will be only two relevant languages: Ada and Lisp." --Some crazy Ada developer circa 1992. 2021-04-06T21:30:11Z tatsumaru: Would you pick Ada over C/C++/Rust for programming in mission critical environments like avionics or resource intensive applications? 2021-04-06T21:32:27Z notzmv quit (Ping timeout: 260 seconds) 2021-04-06T21:32:43Z Zipheir: I don't write such things at the moment, so don't take my word for it. Wikipedia: "Because of Ada's safety-critical support features, it is now used not only for military applications, but also in commercial projects where a software bug can have severe consequences, e.g., avionics and air traffic control,..." 2021-04-06T21:33:15Z LeoNerd: Not only was the specific prediction about which languages wrong, but also the very princple of there being only two languages. Seems that as time goes on we just grow more and more 2021-04-06T21:33:31Z Zipheir: tatsumaru: Here's a big list of companies using it. https://www2.seas.gwu.edu/~mfeldman/ada-project-summary.html 2021-04-06T21:34:18Z tatsumaru: wow thanks 2021-04-06T21:34:29Z Zipheir: LeoNerd: I hope that continues. 2021-04-06T21:35:04Z tatsumaru: I am always baffled by how it is possible that solutions from 40 years ago can be better than what's considered cutting edge at the moment 2021-04-06T21:35:32Z dieggsy: LeoNerd: in general, people should try to keep themselves from making sweeping statements like "the only thing that matters" or even "the next big thing". work on what you work on, promote what you value, but learn to go with the flow too. 2021-04-06T21:35:36Z Zipheir: Of course, that means that people will continue to reinvent the wheel with new languages, but it's better than language monoculture. 2021-04-06T21:35:56Z dieggsy: inb4 "DID STEVE JOBS GO WITH THE FLOW dieggsy?" 2021-04-06T21:35:57Z dieggsy: lmao 2021-04-06T21:36:43Z s-video quit (Ping timeout: 250 seconds) 2021-04-06T21:36:53Z Zipheir: It was Jean Ichbiah who made the "two relevant languages" statement. 2021-04-06T21:37:24Z tatsumaru: he was a bit biased I guess 2021-04-06T21:37:38Z Zipheir: More like Ichbias, amirite... 2021-04-06T21:37:56Z tatsumaru: lol 2021-04-06T21:37:57Z dieggsy: ZING if i ever heard one 2021-04-06T21:38:52Z dieggsy: oof 2021-04-06T21:39:29Z klovett quit (Remote host closed the connection) 2021-04-06T21:39:49Z klovett joined #scheme 2021-04-06T21:45:24Z tatsumaru: Zipheir do you think Ada is good for systems programming? 2021-04-06T21:45:51Z tatsumaru: like low-level and OS stuff 2021-04-06T21:47:07Z Zipheir: It doesn't use a GC, which is good for those situations. 2021-04-06T21:47:35Z tatsumaru: gc is good, or the fact that it doesn't use it is good 2021-04-06T21:47:48Z Zipheir: No GC is good for bare-metal stuff. 2021-04-06T21:49:25Z Zipheir: Although whether GCs are actually a performance issue anymore is debated. 2021-04-06T21:50:52Z Zipheir: If you need a clean imperative language with a lot of library support, Ada seems like a good choice to me. But I'd rather use a functional language if at all possible. 2021-04-06T21:51:53Z tatsumaru: What functional language would you use for systems programming or high-safety tasks? 2021-04-06T21:52:39Z Zipheir: tatsumaru: What would *you* use? :) 2021-04-06T21:53:01Z tatsumaru: I don't know enough to make educated decisions like that 2021-04-06T21:53:47Z t99: ocaml seems to be used quite a bit for systems programming, there's even an OS written in it :) 2021-04-06T21:55:08Z jobol quit (Quit: Leaving) 2021-04-06T21:57:31Z Zipheir: tatsumaru: I wouldn't necessarily use Scheme for "critical" programs. I think some kind of type system that allows the compiler to check your assumptions is pretty important. Niklaus Wirth attributed his (and his collaborator's) being able to write the Oberon system quickly to using a statically-typed language. 2021-04-06T21:58:14Z Zipheir: (If you're interested in OS programming, Oberon is definitely worth studying.) 2021-04-06T21:59:04Z everstone joined #scheme 2021-04-06T22:00:05Z justinethier quit (Quit: Connection closed) 2021-04-06T22:00:07Z hendursaga quit (Remote host closed the connection) 2021-04-06T22:00:22Z everstone: May I ask beginner questions here? 2021-04-06T22:00:32Z hendursaga joined #scheme 2021-04-06T22:00:53Z Zipheir: everstone: Definitely. 2021-04-06T22:01:27Z tatsumaru: Zipheir, Personally I want to study a language that would help me understand how systems work in general. I assumed that a systems programming language like Rust was a good choice for that. 2021-04-06T22:01:34Z everstone: What is the difference between 'foo and "foo"? 2021-04-06T22:01:41Z gnomon quit (Ping timeout: 240 seconds) 2021-04-06T22:01:53Z Zipheir: everstone: The first is a quoted symbol, and the second is a string. 2021-04-06T22:02:11Z gnomon_ quit (Ping timeout: 240 seconds) 2021-04-06T22:02:21Z TCZ joined #scheme 2021-04-06T22:02:41Z jao quit (Ping timeout: 240 seconds) 2021-04-06T22:03:10Z tatsumaru: and by systems I don't necessarily mean operating systems, but any system-type abstraction really. feedback, emergence, thresholds etc. 2021-04-06T22:03:34Z Zipheir: tatsumaru: I recommend λ-calculus. Quite seriously. 2021-04-06T22:04:35Z Zipheir: tatsumaru: Simple languages are the best for investigating difficult ideas! Hence SICP with its tiny Scheme subset. 2021-04-06T22:05:04Z jao joined #scheme 2021-04-06T22:05:24Z tatsumaru: Zipheir: thanks I will give lambda a go and see where it leads me 2021-04-06T22:06:37Z notzmv joined #scheme 2021-04-06T22:07:03Z Zipheir: tatsumaru: You might take a look at http://www.macs.hw.ac.uk/~greg/books/gjm.lambook88.pdf 2021-04-06T22:08:06Z Zipheir: If you go through all of that book, you'll build a sort of ML-flavored-Scheme out of untyped λ-calculus. 2021-04-06T22:08:30Z tatsumaru: I have almost no idea what that means, but it sounds exciting 2021-04-06T22:11:22Z Zipheir: tatsumaru: If you know a little lambda calculus, then you know it's extremely minimal: just functions and application. So you need to do things like define numbers, lists, etc. Recursion you implement with the Y combinator. It's quite cool. 2021-04-06T22:11:39Z rgherdt quit (Ping timeout: 260 seconds) 2021-04-06T22:12:13Z jcowan: "one does not buy a book on COBOL programming in anticipation of chapters on COBOL’s denotational semantics or on how to write COBOL compilers" 2021-04-06T22:19:05Z tatsumaru: Is it a problem if a programming language is based on a philosophical paradigm that isn't compatible with how reality actually works? 2021-04-06T22:19:20Z Zipheir: Well, that's a question. 2021-04-06T22:20:06Z s-video joined #scheme 2021-04-06T22:20:13Z Wezl: define "compatible" 2021-04-06T22:24:52Z tatsumaru: Well I feel that programming is basically about manipulating atoms, so even though abstractions don't have to be true, at the end of the day you are still constrained by physics. So I am thinking that if you create a language based on a paradigm that isn't compatible with what physics says is true, the language shouldn't be able to operate properly on some level, possibly should break at the point where physics laws and that particular i 2021-04-06T22:24:52Z tatsumaru: dea diverge. 2021-04-06T22:26:16Z tatsumaru: The simplest thing I can think of is a language that insists that something which is inherently dynamic be static for the purposes of that language. 2021-04-06T22:28:11Z gnomon joined #scheme 2021-04-06T22:28:39Z gnomon_ joined #scheme 2021-04-06T22:37:07Z dieggsy: tatsumaru: can you give a more concrete example 2021-04-06T22:37:29Z Zipheir: tatsumaru: Is mathematics compatible with reality? The expression 2 + 2 = 4 clearly is not about manipulating atoms. 2021-04-06T22:37:48Z dieggsy: Right. 2021-04-06T22:39:25Z Zipheir: Likewise (= (+ 2 2) 4). 2021-04-06T22:39:26Z dieggsy: t99: i find that weird given that ocaml doesn't (yet) have native thread support - i know it's being worked on to be released within the next couple years - do you know if the OS is making use of that 2021-04-06T22:40:02Z dieggsy: well, there's a /working/ branch with it, so i should say the main release doesn't have it 2021-04-06T22:40:10Z Wezl: Zipheir: opened your link, then recognized the icon, then realized I still have a tab open with the last time someone (probably you) pasted it 2021-04-06T22:40:41Z Zipheir: Heh. Probably me. 2021-04-06T22:47:35Z civodul quit (Ping timeout: 260 seconds) 2021-04-06T22:50:04Z tatsumaru: Zipheir, I think it is if you are doing something with it. Otherwise it's just a a drawing. 2021-04-06T22:51:51Z Zipheir: tatsumaru: You mean treating 2 + 2 = 4 as a computation versus treating it as a proposition? 2021-04-06T22:51:58Z sxmx quit (Quit: WeeChat 3.1) 2021-04-06T22:53:25Z tatsumaru: Yes, I think so. 2021-04-06T22:54:58Z Zipheir: That's a very interesting topic which gets deep into computability theory. 2021-04-06T22:55:46Z tatsumaru: Maybe I am just asking whether math is discovered or invented, not sure. 2021-04-06T22:56:28Z dieggsy: Zipheir: You seem to have way more of a handle on this than me but couldn't you argue that the idea of 'pushing atoms' to express math computationally is 'an implementation detail' if the math is indeed expressed correctly, heh 2021-04-06T22:56:41Z dieggsy: because then you can still reason about the math as the abstract concept that it is 2021-04-06T22:56:44Z Zipheir: I'd say discovered. So does Wadler in his very relevant talk on "propositions as types". https://www.youtube.com/watch?v=IOiZatlZtGU 2021-04-06T22:56:50Z dieggsy: of course this is.... pretty much unachievable lol 2021-04-06T22:57:01Z dieggsy: well, not perfectly anyway 2021-04-06T22:58:08Z dieggsy: I feel like math itself is an invented language for a sort of more abstract or deeper concept that is discovered maybe 2021-04-06T22:58:29Z Zipheir: dieggsy: You can use atoms to compute results just like you'd use a calculator (or your brain). 2021-04-06T22:58:54Z sxmx joined #scheme 2021-04-06T22:59:21Z dieggsy: Zipheir: i mean sure, and in fact computers are just a complex implementation of that 2021-04-06T22:59:59Z Zipheir: Gilles Dowek puts this in an interesting way in "Computation, Proof, Machine". Mathematics is not "a posteriori" because we rely on a calculator to compute something; we're just using a fragment of the universe (which is computationally complete) to compute a result. 2021-04-06T23:00:46Z Zipheir: Just as you can use a ball of known weight, a measuring tape, and some physical knowledge to compute derivatives. 2021-04-06T23:00:50Z dieggsy: but i was sort of more saying that the fact that we're using atoms to express math doesn't make it any less of an idea of truth (as opposed to, idk, an object or an action or a computation) 2021-04-06T23:01:08Z dieggsy: hence 'implementation detail' lol 2021-04-06T23:01:20Z Zipheir: Right. 2021-04-06T23:01:33Z tatsumaru: Does this imply that subsets of reality are complete in some way? 2021-04-06T23:01:35Z Zipheir: I think I agree with that. Who cares what we're computing on. 2021-04-06T23:01:47Z Zipheir: If Church/Turing continues to hold, it doesn't matter. 2021-04-06T23:02:12Z Zipheir: tatsumaru: Turing complete, yes. 2021-04-06T23:02:41Z scm quit (Quit: Leaving) 2021-04-06T23:03:10Z Zipheir: tatsumaru: Which is just to say we can compute things with our brains or abaci or computers, etc., which are just "the universe". 2021-04-06T23:03:37Z Zipheir: abacuses? abacae? 2021-04-06T23:03:44Z tatsumaru: But isn't it true that math ultimately is based on the assumption that there exist some sort of units that are fundamentally separate of each other? Otherwise how could 1,2,3... ever be true? 2021-04-06T23:04:09Z tatsumaru: Is that called set theory? I am not sure. 2021-04-06T23:04:54Z Zipheir: The natural numbers are sets, but those sets don't need to exist somewhere. ("This isn't a Scheme 4. This is Plato's idea of 4, or something." --Hal Abelson) 2021-04-06T23:05:25Z vv8 joined #scheme 2021-04-06T23:06:28Z tatsumaru: Can math be a discovery if the sets it is based on don't exist anywhere? 2021-04-06T23:07:13Z dieggsy: tatsumaru: define 'exist' 2021-04-06T23:07:13Z dieggsy: lol, it sounds like i've just said something stupid or mockingly 2021-04-06T23:07:13Z dieggsy: but i'm kinda serious 2021-04-06T23:07:45Z Zipheir: tatsumaru: Well, every Earth culture discovered the natural numbers. (Yes, there are details here, but still.) 2021-04-06T23:07:47Z dieggsy: math can be taken as a sort of way of interpreting things that do exist, or that are 'real' in our universe 2021-04-06T23:08:49Z Zipheir: tatsumaru: https://en.wikipedia.org/wiki/Constructivism_(philosophy_of_mathematics) 2021-04-06T23:09:12Z dieggsy: but again, i think we can make a distinction between the language of math i'd think is absolutely an 'invention' - more of an evolved construct really and the ideas that math is used to reason about 2021-04-06T23:09:32Z Zipheir: Of course. 2021-04-06T23:09:41Z everstone quit (Quit: Leaving) 2021-04-06T23:10:57Z Zipheir: It would be really disappointing if every intelligent civilization in the universe used our weird df/dx notation. 2021-04-06T23:11:38Z tatsumaru: Like aliens? 2021-04-06T23:12:20Z Zipheir: Yeah. We'd expect the notion of a derivative to be universal, but obviously not the notation (which is a 17th century kludge). 2021-04-06T23:13:45Z Zipheir: "Some people call λ-calculus universal, but I think this is wrong. It's multiversal. Can we imagine a universe in which modus ponens doesn't hold?" (Wadler, in that video I pasted above.) 2021-04-06T23:14:01Z t99: is (null? '()) being true considered a good thing in Scheme or a wart? 2021-04-06T23:14:05Z notzmv quit (Ping timeout: 265 seconds) 2021-04-06T23:14:23Z tatsumaru: what do they mean by universal 2021-04-06T23:14:36Z dieggsy: t99: i think it's true by definition lol. why would it be a wart? 2021-04-06T23:14:51Z dieggsy: t99: to ask null? in scheme /is/ to ask "is this the empty list' 2021-04-06T23:15:00Z Zipheir: tatsumaru: It "works" in any universe. 2021-04-06T23:15:26Z tatsumaru: doesn't this imply that all universes are the same? 2021-04-06T23:15:51Z dieggsy: tatsumaru: it implies that all universes have at least /one/ fundamental truth or idea. they can be wildly different in any other way 2021-04-06T23:16:03Z Zipheir: In the sense that it's hard for us to imagine λ-calculus not computing the same results in them, yes. 2021-04-06T23:16:09Z dieggsy: ....i'm not sure i'd agree with such an assertion 2021-04-06T23:16:29Z dieggsy: but it's something that's obviously not easily tested lol 2021-04-06T23:16:31Z wklew quit (Ping timeout: 260 seconds) 2021-04-06T23:16:34Z Zipheir: t99: Are you objecting to the '() notation? 2021-04-06T23:16:49Z dieggsy: but question feels a bit like asking 'can you imagine anything that you can't imagine?' 2021-04-06T23:16:56Z dieggsy: which, no of course not 2021-04-06T23:16:58Z tatsumaru: is it even possible for one thing to be the same without everything else being the same? 2021-04-06T23:17:41Z tatsumaru: this kind of implies that things exist in and of themselves 2021-04-06T23:17:44Z dieggsy: tatsumaru: depends on what you mean by "the same". the speed of light or the universal gravitational constant might be different, for example, but the general way we do math about them would still hold 2021-04-06T23:19:42Z tatsumaru: dieggsy, I guess I am challenging the assumption that you can create a universe in which anything fundamental is different. 2021-04-06T23:19:50Z Zipheir: Can you imagine a universe in which it doesn't hold that, if you know that A implies B, and you know A, then you can conclude B? 2021-04-06T23:20:02Z dieggsy: tatsumaru: i hate to keep doing this, but that depends on what you mean by fundamental 2021-04-06T23:20:32Z dieggsy: Zipheir: and that's the question that i said feels a bit like 'can you imagine anything that you can't imagine' 2021-04-06T23:20:42Z dieggsy: it's like asking to reason outside of reason 2021-04-06T23:20:52Z dieggsy: which obviously is, not really something we can usefully do lol 2021-04-06T23:20:58Z Zipheir: dieggsy: Right. And that's why lambda calculus is apparently universal. 2021-04-06T23:21:20Z dieggsy: Sure. But state that it is 'multi-versal' makes a lot of assumptions about those other 'universes' 2021-04-06T23:21:42Z Zipheir: Well, we're talking about pure logic here. 2021-04-06T23:21:57Z dieggsy: that do not think can be at /all/ verified, theoretically or practically. but that might just be my ignorance about multiverse theory 2021-04-06T23:22:11Z Zipheir: To make that not hold, it seems like we'd need a universe constructed by Descartes evil demon, or something like that. 2021-04-06T23:22:14Z tatsumaru: dieggsy for the sake of argument something fundamental would be something like cause-effect relationships, laws of thermodynamics, conservation of energy 2021-04-06T23:22:17Z Zipheir: *Descartes's 2021-04-06T23:22:40Z dieggsy: I guess my point is that 2021-04-06T23:23:11Z s-video quit (Ping timeout: 240 seconds) 2021-04-06T23:23:15Z Zipheir: OK, if we allow universes created by evil demons in which nothing we know from logic works, then you can't program there. 2021-04-06T23:23:36Z dieggsy: that /if/ such a universe existed where 'if a and b then.. ' or cause and effect relations /were/ to not hold, we certainly would /not/ be able to imagine it 2021-04-06T23:23:57Z dieggsy: but our incapacity to imagine it doesn't necessarily preclude it's existence 2021-04-06T23:24:07Z dieggsy: or is at least not /the/ thing that precludes it's existence, i don't know 2021-04-06T23:24:24Z dieggsy: ....then you have shit like quantum physics, where cause and effect get fucky. but i don't know much about that either lol 2021-04-06T23:24:53Z Zipheir: The point is that funky physics isn't enough to screw up computation/mathematics. You need funky *logic*. 2021-04-06T23:25:00Z dieggsy: Zipheir: Agreed 2021-04-06T23:25:02Z Zipheir: And that's a lot harder to imagine. 2021-04-06T23:25:09Z dieggsy: It certainly is 2021-04-06T23:25:20Z dieggsy: But to state that it's impossible is basically unknowable 2021-04-06T23:25:37Z dieggsy: by the definition of our own constructs of logic and knowledge, i guess heh 2021-04-06T23:25:53Z Zipheir: Verily! 2021-04-06T23:30:33Z tatsumaru: I guess what I am saying is that maybe some ancient Greeks saw a couple stones on the ground threw the one after another in the lake and came up with 1,2,3. And so if you leave it at that you could conclude that the fundamentals of math are grounded in reality. But when we go into systems thinking the idea that the stone was really an object that exists in and of itself and can be counted as separate becomes less convincing. It's more li 2021-04-06T23:30:33Z tatsumaru: ke it's the same thing like the stuff around it but it's changing at a different pace for whatever reason. And so if a stone isn't really a stone but just an experience of energy that's changing slower than "air" and out of this contrast is born the experience of a separateness, then is it still true that the natural sets are actually factual or just useful to communicate and deal with temporary phenomenons? 2021-04-06T23:30:59Z tatsumaru: In effect that would mean that these are just tiny simulations which are useful, but infinitely inaccurate. 2021-04-06T23:31:29Z s-video joined #scheme 2021-04-06T23:33:13Z tatsumaru: How can time be composed of units anyway? A single unit doesn't have what it takes to transition into the next unit (second, minute etc.) and remain an individual isolated unit at the same time. 2021-04-06T23:33:35Z tatsumaru: And yet it's useful to say it 10 o clock even if that's just a snapshot, that's not entirely accurate. 2021-04-06T23:34:21Z tatsumaru: For the arguments above, I am leaning toward math being an invention rather than a discovery. 2021-04-06T23:34:52Z wklew joined #scheme 2021-04-06T23:49:39Z t99 quit (Ping timeout: 260 seconds) 2021-04-06T23:51:22Z midow joined #scheme 2021-04-06T23:59:43Z wasamasa: is that you, timecube 2021-04-07T00:03:41Z wklew quit (Ping timeout: 240 seconds) 2021-04-07T00:16:30Z wklew joined #scheme 2021-04-07T00:19:02Z aeth quit (Ping timeout: 246 seconds) 2021-04-07T00:20:58Z aeth joined #scheme 2021-04-07T00:22:35Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-07T00:37:15Z jao quit (Ping timeout: 260 seconds) 2021-04-07T00:39:04Z jao joined #scheme 2021-04-07T00:40:45Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-04-07T00:44:11Z gnomon quit (Ping timeout: 240 seconds) 2021-04-07T00:44:15Z gnomon_ quit (Ping timeout: 260 seconds) 2021-04-07T00:44:42Z tatsumaru left #scheme 2021-04-07T01:04:12Z foof: lockywolf: symbolic-link-file and readlink are provided, what more did you want? 2021-04-07T01:04:33Z badkins joined #scheme 2021-04-07T01:09:06Z frost-lab joined #scheme 2021-04-07T01:10:26Z TCZ quit (Quit: Dowidzenia) 2021-04-07T01:17:51Z DGASAU quit (Ping timeout: 260 seconds) 2021-04-07T01:18:34Z lockywolf: foof: I think I want file-status to work like in chicken 2021-04-07T01:19:06Z lockywolf: i.e., accept a second argument meaning "follow-symlinks?" 2021-04-07T01:20:13Z badkins quit (Remote host closed the connection) 2021-04-07T01:29:53Z lockywolf: literal documentation for (chibi filesystem) seems to be only fetched from filesystem.stub, not from filesystem.scm 2021-04-07T01:30:42Z DGASAU joined #scheme 2021-04-07T01:33:39Z logand`` joined #scheme 2021-04-07T01:36:28Z lockywolf: maybe file-link-status is enough 2021-04-07T01:37:05Z logand` quit (Ping timeout: 246 seconds) 2021-04-07T01:50:08Z indathrone quit (Quit: Leaving) 2021-04-07T02:00:11Z gnomon joined #scheme 2021-04-07T02:00:25Z gnomon_ joined #scheme 2021-04-07T02:17:26Z aeth_ joined #scheme 2021-04-07T02:19:27Z aeth quit (Ping timeout: 260 seconds) 2021-04-07T02:21:49Z foof: the documentation from both files is merged 2021-04-07T02:22:22Z aeth_ is now known as aeth 2021-04-07T02:22:35Z raingloom quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-07T02:23:12Z foof: you can implement that behavior yourself on top of the existing API, or file a wishlist ticket 2021-04-07T02:25:07Z foof: file-status is a simple wrapper around fstat. file-link-status is a wrapper around lstat. changing the default behavior for either would be unintuitive. 2021-04-07T02:28:21Z lockywolf: what is the proper shebang line for "load the module defined in this script"? 2021-04-07T02:29:38Z foof: load the module and run its main? 2021-04-07T02:30:04Z lockywolf: yes 2021-04-07T02:30:31Z lockywolf: scsh has -dm parameter, that says "load this file and define-structure's in it" 2021-04-07T02:30:56Z lockywolf: then the modules, defined in the files can be used for "(open)" 2021-04-07T02:32:28Z lockywolf: as in scsh -dm -m mindmap -e newmain -s filename.scm arguments : 1) load define-structures from filename.scm, open the mindmap module, run newmain from this module 2021-04-07T02:33:49Z foof: it might be possible with some -e hackery, but there's no shorthand for that use case 2021-04-07T02:34:22Z foof: and shebang uses are even more limited - unlike perl chibi doesn't reparse the line, so you only get one argument 2021-04-07T02:39:00Z lockywolf: is it possible to define a module in a shebanged file? 2021-04-07T02:42:22Z DanklyTuned joined #scheme 2021-04-07T02:47:45Z foof: only with eval 2021-04-07T02:49:10Z foof: (eval '(define-library ...) (module-env (load-module '(meta)))) 2021-04-07T02:52:20Z foof: like I said, it doesn't really make sense. why do you want to do this for a fixed script? 2021-04-07T02:52:49Z foof: I understand wanting to hack modules interactively to learn/explore, which is why the advanced repl has convenience commands for this. 2021-04-07T02:54:10Z lockywolf: to me it looks convenient... 2021-04-07T02:54:50Z lockywolf: the same file would be runnable to produce some useful result, but if (load)ed, would export some useful functions for somebody else 2021-04-07T02:55:20Z lockywolf: without introducing useless things into the namespace 2021-04-07T02:56:15Z foof: ah! but if you require them to know where the file is, bypassing the usual module lookup, then they can't easily just do (import (foo)). 2021-04-07T02:56:56Z foof: whereas if you use the proper module lookup, the command just becomes chibi-scheme -Rfoo 2021-04-07T02:57:15Z wklew quit (Ping timeout: 260 seconds) 2021-04-07T02:57:19Z trcm joined #scheme 2021-04-07T02:57:47Z lockywolf: where's the contradiction? if placed in the correct location, the file can be simply import'able as well 2021-04-07T02:59:17Z foof: if you place it in the proper location, then 1. it's probably not in PATH and 2. you don't even need it to have a #! line 2021-04-07T02:59:47Z lockywolf: before I can place it in the "final" location, I need to make sure it is of good quality 2021-04-07T03:00:29Z lockywolf: system-integrated loading and per-file loading do not contradict each other 2021-04-07T03:00:58Z foof: the default library path includes "." and "./lib/", and you can use -I if you want to put it somewhere else 2021-04-07T03:01:20Z lockywolf: but I do not know where it is 2021-04-07T03:01:38Z foof: i.e. if you just create ./foo.sld with the definition, then chibi-scheme -Rfoo will load that file as expected 2021-04-07T03:01:58Z lockywolf: e.g. /tmp/$(uuid)/my-file.scm 2021-04-07T03:02:25Z foof: chibi-scheme -I/tmp/$(uuid) -Rmy-file 2021-04-07T03:02:59Z lockywolf: that still requires knowing that uuid at write-time 2021-04-07T03:03:06Z foof: ... 2021-04-07T03:03:20Z lockywolf: how would I know where the user may place the file? 2021-04-07T03:03:22Z foof: if you don't know the uuid, how can you run the file to begin with? 2021-04-07T03:03:34Z lockywolf: I don't. The user does 2021-04-07T03:03:47Z foof: I'm confused. What are we talking about o_O 2021-04-07T03:05:50Z lockywolf: what is so unconventional about what I am asking about? 2021-04-07T03:06:05Z lockywolf: one-file=one-program 2021-04-07T03:06:15Z lockywolf: maybe there are many modules inside that one file 2021-04-07T03:06:36Z lockywolf: it may be placed somewhere, I do not know where 2021-04-07T03:06:47Z foof: I don't understand your use case. 2021-04-07T03:07:23Z foof: there is a chibi way of doing things. to allow a divergence from that, I need a convincing argument why it can't be used. 2021-04-07T03:07:42Z foof: the entire concept that you want to run a file but don't know where the file is has shut my brain down. 2021-04-07T03:07:58Z lockywolf: never mind. I guess you have reasons to make it the way it works. 2021-04-07T03:08:17Z foof: I'm willing to suggestions, I just don't understand what you're trying to do. 2021-04-07T03:10:06Z foof: is this a package manager? 2021-04-07T03:17:56Z lockywolf: I am trying to make a program that "just works" as if it was a binary. without the user knowing it is written in chibi 2021-04-07T03:18:30Z lockywolf: that consists of a few modules in a single file, and accepts a few command-line switches 2021-04-07T03:18:58Z lockywolf: that a user can place somewhere where he has run permissions and run 2021-04-07T03:23:17Z wklew joined #scheme 2021-04-07T03:23:45Z foof: sounds like a normal script. no need for modules, although if you do want them for structure then first-class modules may be preferred. 2021-04-07T03:24:35Z foof: the danger of this in general is that you end up cramming in large and reusable modules into a single file where they can't be reused, and the script becomes an unmaintainable monolith. 2021-04-07T03:27:11Z lockywolf: what are first-class modules? 2021-04-07T03:28:13Z lockywolf: I see it quite in the opposite way. 2021-04-07T03:28:24Z foof: lexical modules: http://wiki.call-cc.org/eggref/3/lexmod 2021-04-07T03:28:33Z lockywolf: I would _start_ developing a script with already having modules in mind. 2021-04-07T03:29:09Z lockywolf: Some of them would stay rudimentary forever. Some would grow into somethin bigger, and get their own files/libraries. 2021-04-07T03:29:22Z lockywolf: *library names and places in a repository* 2021-04-07T03:31:54Z ZombieChicken joined #scheme 2021-04-07T03:42:45Z foof: maybe allowing (import (define-library ...)) is the best way to handle this 2021-04-07T03:50:00Z ZombieChicken quit (Quit: WeeChat 3.1) 2021-04-07T03:50:00Z forgottenwizard joined #scheme 2021-04-07T03:55:11Z wklew quit (Ping timeout: 240 seconds) 2021-04-07T03:56:41Z skapata quit (Remote host closed the connection) 2021-04-07T04:04:00Z s-video quit (Quit: Leaving) 2021-04-07T04:08:39Z lockywolf: okay, done it 2021-04-07T04:09:38Z lockywolf: indeed, with (chibi module) it seems to work 2021-04-07T04:10:24Z lockywolf: the order of imports matters 2021-04-07T04:13:12Z lockywolf: (import (chibi)) (import (chibi modules)) (import (meta)) lets me use define-library 2021-04-07T04:13:16Z gnomon_ quit (Ping timeout: 265 seconds) 2021-04-07T04:13:41Z gnomon quit (Ping timeout: 240 seconds) 2021-04-07T04:14:14Z brendyyn joined #scheme 2021-04-07T04:14:31Z lockywolf: and then I can do: (define (main . args) (apply (module-ref (analyze-module '(mindmap)) 'innermain) args)) 2021-04-07T04:14:40Z lockywolf: easy-peasy 2021-04-07T04:24:31Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-07T04:25:25Z klovett quit (Remote host closed the connection) 2021-04-07T04:26:04Z klovett joined #scheme 2021-04-07T04:26:06Z forgottenwizard is now known as ZombieChicken 2021-04-07T04:30:06Z lockywolf: foof, could you add the documentation from filesystem.scm to the generated documentation? 2021-04-07T04:32:15Z lockywolf: or, sorry, just update the documentation snapshot online? http://synthcode.com/scheme/chibi/lib/chibi/filesystem.html 2021-04-07T04:33:11Z foof: it's already there, what don't you see? 2021-04-07T04:33:46Z lockywolf: read-link 2021-04-07T04:36:17Z foof: hmmm... chibi-doc doesn't seem to like cond-expanded defs 2021-04-07T04:37:25Z lockywolf: yes, my bad 2021-04-07T04:37:54Z foof: no, mine 2021-04-07T04:46:55Z jao quit (Ping timeout: 260 seconds) 2021-04-07T04:54:45Z gravicappa joined #scheme 2021-04-07T04:56:12Z nly joined #scheme 2021-04-07T05:04:18Z foof: I would (import (only (meta) define-library)) for safety. 2021-04-07T05:23:31Z forgottenwizard joined #scheme 2021-04-07T05:23:31Z ZombieChicken quit (Disconnected by services) 2021-04-07T05:23:51Z forgottenwizard is now known as ZombieChicken 2021-04-07T05:52:40Z badkins joined #scheme 2021-04-07T05:57:01Z badkins quit (Ping timeout: 260 seconds) 2021-04-07T05:58:00Z klovett quit (Remote host closed the connection) 2021-04-07T05:58:17Z klovett joined #scheme 2021-04-07T06:02:59Z klovett quit (Ping timeout: 265 seconds) 2021-04-07T06:12:36Z iv4nshm4k-v joined #scheme 2021-04-07T06:45:07Z Core4700 joined #scheme 2021-04-07T06:45:07Z abralek_ quit (Read error: Connection reset by peer) 2021-04-07T06:45:54Z jobol joined #scheme 2021-04-07T06:47:00Z amirouche: I tried to learn rust but I lost steam. 2021-04-07T06:47:19Z amirouche: especially, when I started reading unsafe rust. 2021-04-07T06:47:33Z amirouche: which is required to bind c libs. 2021-04-07T06:51:28Z snan: http://steve-yegge.blogspot.com/2007/06/rich-programmer-food.html ← "Large Systems Suck. This rule is 100% transitive. If you build one, you suck." I wonder if that's true 2021-04-07T07:01:31Z lockywolf: I used to suck when I was 5 months old. 2021-04-07T07:02:44Z shawnw joined #scheme 2021-04-07T07:04:37Z elflng joined #scheme 2021-04-07T07:09:37Z ZombieChicken quit (Quit: WeeChat 3.1) 2021-04-07T07:11:25Z Aquazi joined #scheme 2021-04-07T07:12:11Z elflng_ joined #scheme 2021-04-07T07:12:45Z Core4700 quit (Read error: Connection reset by peer) 2021-04-07T07:12:47Z abralek_ joined #scheme 2021-04-07T07:15:08Z elflng_ quit (Client Quit) 2021-04-07T07:15:21Z elflng quit (Ping timeout: 260 seconds) 2021-04-07T07:15:36Z elflng_ joined #scheme 2021-04-07T07:16:01Z elflng_ is now known as elflng 2021-04-07T07:24:29Z nly` joined #scheme 2021-04-07T07:26:16Z nly quit (Ping timeout: 260 seconds) 2021-04-07T07:33:45Z rgherdt joined #scheme 2021-04-07T07:33:46Z abralek_ quit (Read error: Connection reset by peer) 2021-04-07T07:34:03Z abralek_ joined #scheme 2021-04-07T07:35:02Z motersen_ is now known as motersen 2021-04-07T07:48:34Z lockywolf: ok, chibi port is ready 2021-04-07T07:49:03Z lockywolf: it has some hardlink handling bugs, so ymmv 2021-04-07T07:49:57Z lockywolf: but I guess, being able to use a modern interpreter is better than an old unsupported one 2021-04-07T07:51:52Z lockywolf: heuristics welcom 2021-04-07T07:51:52Z elflng quit (Read error: Connection reset by peer) 2021-04-07T07:51:53Z lockywolf: e 2021-04-07T07:52:36Z elflng joined #scheme 2021-04-07T08:05:28Z s-video joined #scheme 2021-04-07T08:07:08Z hendursa1 joined #scheme 2021-04-07T08:09:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-07T08:11:52Z lockywolf: wow, chibi is 10 times faster than scheme48 2021-04-07T08:14:46Z t99 joined #scheme 2021-04-07T08:29:58Z Zenton quit (Read error: Connection reset by peer) 2021-04-07T08:30:30Z Zenton joined #scheme 2021-04-07T08:37:29Z vv8 quit (Remote host closed the connection) 2021-04-07T08:38:24Z supercoven joined #scheme 2021-04-07T08:39:48Z dpk: comparing their rankings in https://ecraven.github.io/r7rs-benchmarks/, that doesn't surprise me 2021-04-07T08:40:29Z dpk: (in the leaderboard, S48 gets one 9th-place medal, but in the table you can see Chibi often does better even though it never gets a medal) 2021-04-07T08:40:58Z ecraven: sorry for not improving on that ranking system, I'll do that Some Day Real Soon™ 2021-04-07T08:48:50Z lritter joined #scheme 2021-04-07T08:50:29Z clacke quit (Ping timeout: 248 seconds) 2021-04-07T08:50:29Z theruran_ quit (Ping timeout: 248 seconds) 2021-04-07T08:50:59Z rickbutton quit (Ping timeout: 248 seconds) 2021-04-07T08:50:59Z cky944 quit (Ping timeout: 248 seconds) 2021-04-07T08:51:16Z cky944 joined #scheme 2021-04-07T08:51:32Z siraben quit (Ping timeout: 248 seconds) 2021-04-07T08:52:39Z theruran_ joined #scheme 2021-04-07T08:52:47Z rickbutton joined #scheme 2021-04-07T08:54:27Z terpri_ quit (Remote host closed the connection) 2021-04-07T08:54:55Z terpri_ joined #scheme 2021-04-07T08:56:23Z terpri_ quit (Excess Flood) 2021-04-07T08:56:51Z terpri_ joined #scheme 2021-04-07T09:02:42Z lockywolf: it's likely due to system call performance more than anything else 2021-04-07T09:03:03Z lockywolf: Android sdk boggles me 2021-04-07T09:03:14Z s-video quit (Ping timeout: 258 seconds) 2021-04-07T09:03:48Z clacke joined #scheme 2021-04-07T09:04:02Z lockywolf: it has huge number of files, yet I haven't invented a heuristic to filter this tree out 2021-04-07T09:09:52Z nly` is now known as nly 2021-04-07T09:09:59Z nly quit (Changing host) 2021-04-07T09:09:59Z nly joined #scheme 2021-04-07T09:15:57Z siraben joined #scheme 2021-04-07T09:28:21Z amirouche: yeah chibi sounds better 2021-04-07T09:42:42Z nly quit (Ping timeout: 252 seconds) 2021-04-07T09:47:06Z foof: ecraven: if you used read-line for cat (or added a wc -l or fgrep benchmark) I bet chibi would be in the top 10 2021-04-07T09:48:05Z Major_Biscuit joined #scheme 2021-04-07T09:52:41Z foof: ... or read-string. either that or read-line do a better job of measuring I/O overhead than read-char. 2021-04-07T09:53:21Z badkins joined #scheme 2021-04-07T09:55:19Z supercoven_ joined #scheme 2021-04-07T09:57:43Z badkins quit (Ping timeout: 260 seconds) 2021-04-07T09:58:26Z supercoven quit (Ping timeout: 240 seconds) 2021-04-07T10:12:21Z ecraven: foof: I just took the existing tests, I didn't change anything about them 2021-04-07T10:20:32Z civodul joined #scheme 2021-04-07T10:27:13Z dpk: anyone know why Shutt called his operative constructor 'vau'? 2021-04-07T10:27:22Z dpk: after the Semitic letter? 2021-04-07T10:27:52Z nly joined #scheme 2021-04-07T10:33:50Z snan quit (Read error: Connection reset by peer) 2021-04-07T10:34:05Z snan joined #scheme 2021-04-07T10:34:21Z dpk: ah, Appendix C of his thesis 2021-04-07T10:44:47Z skapata joined #scheme 2021-04-07T10:57:23Z nly quit (Ping timeout: 248 seconds) 2021-04-07T11:17:46Z vv8 joined #scheme 2021-04-07T11:19:18Z aeth quit (Ping timeout: 240 seconds) 2021-04-07T11:21:22Z aeth joined #scheme 2021-04-07T11:44:32Z gnomon joined #scheme 2021-04-07T11:44:50Z gnomon_ joined #scheme 2021-04-07T11:46:21Z t99: is (null? '()) being true considered a good thing in Scheme or a wart? 2021-04-07T11:46:39Z t99: lol ignore that, was a question from earlier and I up-arrowed 2021-04-07T11:58:29Z tatsumaru joined #scheme 2021-04-07T11:58:49Z tatsumaru: is it true the opencog AGI project is using guile as its main language? 2021-04-07T12:00:19Z badkins joined #scheme 2021-04-07T12:04:18Z badkins quit (Ping timeout: 240 seconds) 2021-04-07T12:04:30Z amirouche: tatsumaru: it has a dominent position in opencog and is embeddded in the rest of the framework built with c++ 2021-04-07T12:04:53Z amirouche: tatsumaru: why are you asking? 2021-04-07T12:06:17Z tatsumaru: amirouche just out of curiosity 2021-04-07T12:06:39Z amirouche: tatsumaru: I try long and large to tell them to rewrite the thing with Chez, but disregarded my take on the topic among other things. 2021-04-07T12:06:46Z amirouche: s/I try/I tried/ 2021-04-07T12:06:59Z tatsumaru: you don't like guile? 2021-04-07T12:07:42Z amirouche: They prolly can do stuff with opencog, but after much lurking and trying, I have still no clue what they do. It is half privateer endeavor (the other half is open-source, but nothing is useable... out-of-the-box) 2021-04-07T12:09:05Z amirouche: tatsumaru: yes, but it does not matter for the purpose of opencog, the best tool for the job should be a driving decision, not some pseudo-ethical aspect. Mind the fact, when opencog started Chez was not opensource. 2021-04-07T12:09:25Z m1dnight_ quit (Quit: WeeChat 2.4) 2021-04-07T12:10:22Z m1dnight_ joined #scheme 2021-04-07T12:10:55Z amirouche: The high-level / big picture papers are interesting, there is also the Probabilistic Logic Network thing, that might be interesting (heavy math), also the code generation project seems brillant (the author was hired by Google, just after completion) 2021-04-07T12:11:23Z amirouche: That was for the big-picture ^ 2021-04-07T12:11:55Z amirouche: when you go inside technical details of the project, it gets worse. 2021-04-07T12:12:07Z tatsumaru: how's the search engine going 2021-04-07T12:12:07Z amirouche: imo. 2021-04-07T12:12:14Z amirouche: tatsumaru: slowly 2021-04-07T12:12:24Z tatsumaru: is it in chez? 2021-04-07T12:13:44Z t99: In my Lisp, (self) returns the current environment and . looks up symbols in an environment expression. 2021-04-07T12:13:53Z t99: This allows (. pos x) 2021-04-07T12:14:05Z t99: Is there anything scheme-y like that available? 2021-04-07T12:14:31Z amirouche: tatsumaru: It might seem like an error, but I planned to start with the frontend, half of the error, the other half is I am trying to finish my Scheme to JavaScript compiler, instead of using Chibi or Gambit. And I plan to use Chez for the backend. 2021-04-07T12:15:45Z amirouche: tatsumaru: and the the Scheme->JavaScript compiler is hosted by Chez too. 2021-04-07T12:15:49Z tatsumaru: why not use something like clojurescript? 2021-04-07T12:16:02Z t99: https://pastebin.com/raw/LUVhYBw2 is an example. If there's an existing syntax, I'd like to adhere if possible. 2021-04-07T12:16:06Z amirouche: because it is not Scheme, and I do not know clojure. 2021-04-07T12:16:33Z amirouche: fwiw, I do not think I far away from the Minimum Viable Scheme for that project. 2021-04-07T12:16:38Z tatsumaru: hmm I thought schemes and lisps were very similar 2021-04-07T12:17:29Z amirouche: clojure and scheme look alike on some stuff like they are both LISP-1, IIRC, but stdlib is much different. 2021-04-07T12:17:50Z amirouche: one of the goal is to do full-stack scheme. 2021-04-07T12:38:01Z scm_ joined #scheme 2021-04-07T12:42:28Z tdammers: clojurescript also comes with surprisingly heavy tooling requirements 2021-04-07T12:47:30Z ChoHag: It wouldn't be java otherwise. 2021-04-07T12:48:35Z iv4nshm4k-v left #scheme 2021-04-07T12:49:20Z mdhughes: I don't want to work in Clojure because it's ugly, but both ClojureScript and Clojure have useful runtimes, which is tempting. 2021-04-07T12:52:00Z ecraven: but ... Java :P 2021-04-07T12:54:10Z tatsumaru: i always thought of clojure as a sort of evolution from the java world towards the lisp world rather than a devolution from the lisp world towards java 2021-04-07T13:02:30Z frost-lab quit (Quit: Connection closed) 2021-04-07T13:08:12Z wasamasa: clojure is an evolution of CL towards FP 2021-04-07T13:08:31Z wasamasa: the java bits aren't that important really 2021-04-07T13:08:56Z tatsumaru: what is CL? 2021-04-07T13:09:08Z wasamasa: an uncommon lisp dialect 2021-04-07T13:09:20Z tatsumaru: lol i get it 2021-04-07T13:09:34Z wasamasa: there's a PDF explaining clojure's history and how it came to be 2021-04-07T13:09:37Z tatsumaru: just like common sense 2021-04-07T13:09:40Z wasamasa: yes 2021-04-07T13:09:55Z wasamasa: https://download.clojure.org/papers/clojure-hopl-iv-final.pdf 2021-04-07T13:10:14Z wasamasa: its maker used to do CL for a living, identified the pain points and managed to fix them 2021-04-07T13:10:37Z wasamasa: and to fix the library situation, they ended up embracing the java ecosystem 2021-04-07T13:11:05Z tatsumaru: curious why they didn't go with c/c++ instead 2021-04-07T13:11:16Z wasamasa: lol 2021-04-07T13:11:18Z wasamasa: FP 2021-04-07T13:11:30Z wasamasa: good luck with that in anything lacking a garbage collector 2021-04-07T13:11:40Z wasamasa: but really, read the paper 2021-04-07T13:11:52Z wasamasa: it explains why 2021-04-07T13:11:52Z tatsumaru: ok, i will 2021-04-07T13:15:06Z jcowan: warning: the paper is IMO very boring and full of "I did this, I did that". It's better to just ssearch it for particular points. 2021-04-07T13:18:39Z wasamasa: lol 2021-04-07T13:19:01Z wasamasa: I very much prefer something with 50 pages explaining how it came to be than 10 pages with inscrutable syntax I have to pore over for days 2021-04-07T13:19:09Z wasamasa: but I guess calling it a paper is wrong 2021-04-07T13:19:15Z aeth quit (Ping timeout: 248 seconds) 2021-04-07T13:19:30Z tatsumaru: isn't this whole idea of creating "general-purpose" programming languages sub-optimal? in my experiences in other fields of life it was always a bad idea to try and create a one-size fits all solution, aren't a lot of programming problems going to disappear if certain languages are optimized for specific goals in mind so that they focus on that problem and delete certain features that are causing the issues? 2021-04-07T13:19:48Z wasamasa: jcowan: what do you think about this one on elisp: http://www.iro.umontreal.ca/~monnier/hopl-4-emacs-lisp.pdf 2021-04-07T13:20:15Z wasamasa: how else are you going to solve problems if you need a new language for every new problem 2021-04-07T13:20:59Z tatsumaru: wasamasa sure but not every problem is in its own unique domain space, so you don't need a new language for every problem, just for every domain 2021-04-07T13:21:07Z Wezl: tatsumaru: maybe optimize to be extensible? That's where lisp shines 2021-04-07T13:21:12Z aeth joined #scheme 2021-04-07T13:22:40Z wklew joined #scheme 2021-04-07T13:22:47Z lockywolf: that's what they thought when they invented awk, vimscript, elisp, etc 2021-04-07T13:23:05Z lockywolf: the idea that "every domain needs a language" is very 1970 2021-04-07T13:23:21Z tatsumaru: how did it turn out? 2021-04-07T13:23:29Z lockywolf: can't you see? 2021-04-07T13:23:36Z lockywolf: everybody loves python 2021-04-07T13:23:58Z tatsumaru: yeah but everybody writes useless food delivery apps, so that's not really a measure of correctness 2021-04-07T13:24:17Z lockywolf: anaconda is not just food delivery apps 2021-04-07T13:24:54Z lockywolf: I'm finding this idea "one language per problem" very conservative 2021-04-07T13:25:19Z tatsumaru: lisp is also conservative 2021-04-07T13:25:22Z lockywolf: it is as if like you want to keep people specialized instead of letting programmers enslave the world 2021-04-07T13:25:27Z tatsumaru: if by conservative you mean old that is 2021-04-07T13:25:34Z klovett joined #scheme 2021-04-07T13:25:37Z lockywolf: (which is, obviously, a Good Thing) 2021-04-07T13:26:03Z tatsumaru: lockywolf that's like saying that if you know biology you can't know physics and history too 2021-04-07T13:26:14Z lockywolf: can you? 2021-04-07T13:26:28Z lockywolf: in the Old World you surely cannot 2021-04-07T13:26:36Z lockywolf: I had a meme about it 2021-04-07T13:26:39Z lockywolf: lemme look 2021-04-07T13:26:43Z dieggsy: wat 2021-04-07T13:26:55Z dieggsy: sure you can 2021-04-07T13:27:00Z wasamasa: tatsumaru: somewhat surprisingly people hate learning new languages 2021-04-07T13:27:13Z wasamasa: tatsumaru: like, take awk, it seems most don't progress beyond printing out a numbered column 2021-04-07T13:27:17Z gnomon_ quit (Quit: leaving) 2021-04-07T13:27:18Z jcowan: wasamasa: I'm reading the Logo paper (Logo is a Lisp, of course) and will read the Elisp one next. 2021-04-07T13:27:25Z acarrico joined #scheme 2021-04-07T13:27:28Z dieggsy: wasamasa: lmao that's me! you're talking about me! jajaj 2021-04-07T13:27:39Z wasamasa: I'm similar 2021-04-07T13:27:47Z wasamasa: I like languages, but at some point fatigue sets in 2021-04-07T13:27:52Z wasamasa: why learn awk when I have ruby 2021-04-07T13:28:33Z dieggsy: i actually like learning new languages (that i like learning, totally subjective) i was just relating on the awk front 2021-04-07T13:28:47Z tatsumaru: it's a legit problem for sure, you have a limited amount of energy and you don't want to spread yourself too thin that you know the names of infinite amounts of programming languages but nothing about the languages themselves, and at the other end of the spectrum is you are still coding in cobol. 2021-04-07T13:29:34Z lockywolf: https://imgur.com/BLl1G0U 2021-04-07T13:29:59Z lockywolf: tatsumaru, and making a lot of money! 2021-04-07T13:30:31Z jcowan: https://dl.acm.org/toc/pacmpl/2020/4/HOPL has open-access links to all the papers. THe one on hygienic macros is excellent. 2021-04-07T13:30:45Z averell quit (Quit: .) 2021-04-07T13:30:48Z tatsumaru: lockywolf I know only 1% of those words and I still find it funny lol 2021-04-07T13:32:52Z justinethier joined #scheme 2021-04-07T13:33:00Z lockywolf: I laughed my ass off when I understood that physicists implicitly consider all Hilbert spaces rigged 2021-04-07T13:33:04Z dieggsy: wasamasa: there's something about awk specifically that makes it sort of inscrutable to me. i don't know what it is. like whenever i delve into more meaningful or complex awk stuff i never retain that knowledge 2021-04-07T13:33:28Z dieggsy: some of it may just be i think the syntax is gross and my brain just kind of /wants/ to reject it lol 2021-04-07T13:33:42Z phillbush joined #scheme 2021-04-07T13:33:47Z lockywolf: I wanted to learn awk fow a long time, but never found any use 2021-04-07T13:33:49Z tatsumaru: dieggsy our brains have evolved to ignore information that's irrelevant, so if you don't have the why behind why you are learning that stuff your brain might be letting it go quickly. 2021-04-07T13:34:03Z lockywolf: and without a use-case it's pointell 2021-04-07T13:34:08Z lockywolf: *pointless 2021-04-07T13:34:28Z jcowan: I use awk constantly, mostly for very short programs 2021-04-07T13:34:29Z tatsumaru: lockywolf I have a pc without a mouse that's pointless 2021-04-07T13:34:52Z dieggsy: tatsumaru: maybe. i think on some lower level there are things my brain wants or likes to learn and things it doesn't, regardless of the why. maybe that's literally just what preference is lol 2021-04-07T13:34:55Z lockywolf: that's a valid point 2021-04-07T13:36:07Z tatsumaru: personally i have terrible rote memory and great contextual memory. if there's a story attached to it and i see its purpose i can remember the most obscure details, if I feel it's just random noises I forget even one sentence soon after I read it. 2021-04-07T13:37:02Z lockywolf: and that's why I wrote that mind-map generator 2021-04-07T13:37:11Z tatsumaru: I've somewhat envied people who can remember things for no reason. 2021-04-07T13:37:58Z tatsumaru: mnemonics are so much inferior to photographic memory 2021-04-07T13:39:15Z jcowan: I can remember language for no reason, but not pictures, which I mostly can't remember at all 2021-04-07T13:39:47Z tatsumaru: there is this savant guy from the states who knows all the historical events by heart as well as all the phone numbers and their owners or something like that. now granted that's a pretty useless database to hold on to, but same skill could be used for better purposes. 2021-04-07T13:42:24Z dieggsy: This reminds me of my mom learning the command line and asking "what does that stand for" for /every single command/ and my brain just not working like that lol 2021-04-07T13:42:56Z dieggsy: fun test of my (mostly non-existent) knowledge of how the names of shell utilities came to be though 2021-04-07T13:43:09Z badkins joined #scheme 2021-04-07T13:43:20Z tatsumaru: true, it's like how you learn your first human language, and how you learn your second - first one , just use it, second one memorize grammatical rules and use cases. 2021-04-07T13:44:00Z tatsumaru: never made sense to me. just go in that country and force yourself to use the language, who cares about the specification. 2021-04-07T13:44:10Z averell joined #scheme 2021-04-07T13:45:28Z tatsumaru: in fact I think that learning in the scholar way makes you slower because you need to go through more abstraction layers to make a decision on how to speak. 2021-04-07T13:51:41Z amirouche: thanks for the link john. 2021-04-07T13:54:21Z shawnw quit (Ping timeout: 260 seconds) 2021-04-07T13:56:03Z sz0 joined #scheme 2021-04-07T13:57:39Z mmmattyx joined #scheme 2021-04-07T14:08:07Z jao joined #scheme 2021-04-07T14:16:14Z aeth_ joined #scheme 2021-04-07T14:17:43Z aeth quit (Disconnected by services) 2021-04-07T14:17:45Z aeth_ is now known as aeth 2021-04-07T14:18:39Z amirouche: The hygienic macro technology "paper" is 110 pages long https://dl.acm.org/doi/10.1145/3386330 2021-04-07T14:23:40Z wasamasa: wow 2021-04-07T14:25:19Z tatsumaru left #scheme 2021-04-07T14:30:00Z brendyyn quit (Ping timeout: 265 seconds) 2021-04-07T14:37:00Z justinethier: Quite nice having all the history in one paper though 2021-04-07T14:48:21Z hendursa1 quit (Ping timeout: 240 seconds) 2021-04-07T14:53:39Z gnomon quit (Ping timeout: 248 seconds) 2021-04-07T14:54:01Z dinnu93 joined #scheme 2021-04-07T14:54:38Z _apg quit (Ping timeout: 240 seconds) 2021-04-07T14:55:47Z nly joined #scheme 2021-04-07T15:14:44Z gnomon joined #scheme 2021-04-07T15:17:35Z aeth_ joined #scheme 2021-04-07T15:18:04Z aeth quit (Disconnected by services) 2021-04-07T15:18:07Z aeth_ is now known as aeth 2021-04-07T15:21:58Z sz0 quit (Ping timeout: 258 seconds) 2021-04-07T15:22:27Z elfenix joined #scheme 2021-04-07T15:23:25Z cemerick quit (Read error: Connection reset by peer) 2021-04-07T15:24:46Z sz0 joined #scheme 2021-04-07T15:24:52Z cemerick joined #scheme 2021-04-07T15:26:16Z skapata quit (Remote host closed the connection) 2021-04-07T15:26:43Z Zipheir: Indeed. And astonishingly, you can just download it from the ACM's site. 2021-04-07T15:31:47Z t99 quit (Ping timeout: 252 seconds) 2021-04-07T15:46:06Z aeth quit (Ping timeout: 240 seconds) 2021-04-07T15:48:14Z aeth joined #scheme 2021-04-07T15:49:19Z amirouche: that is fun. 2021-04-07T15:49:42Z amirouche: I hope nobody will quote my garage hacking in such a paper, tho. 2021-04-07T15:50:08Z hendursa1 joined #scheme 2021-04-07T15:56:16Z notzmv joined #scheme 2021-04-07T15:58:47Z t99 joined #scheme 2021-04-07T15:59:54Z amirouche: it is almost a full history of scheme, very great. 2021-04-07T16:05:47Z Zipheir: I wonder if it provides any clues to actually implementing the hygienic macro expansion algorithm. 2021-04-07T16:06:11Z Zipheir: The Friedman, et al paper is scant on implementation examples. 2021-04-07T16:12:55Z ChoHag: By about page 25 it's pointed at one or two implementations. 2021-04-07T16:15:03Z tatsumaru joined #scheme 2021-04-07T16:15:16Z tatsumaru: what's the difference between an immutable variable and a constant? 2021-04-07T16:15:36Z ChoHag: Semantics. 2021-04-07T16:15:56Z ChoHag: One's a variable you can't change, the other's a constant you can't change. 2021-04-07T16:16:54Z aeth_ joined #scheme 2021-04-07T16:16:58Z aeth quit (Disconnected by services) 2021-04-07T16:17:05Z aeth_ is now known as aeth 2021-04-07T16:21:52Z Zipheir: tatsumaru: In any case, Scheme doesn't have that distinction. 2021-04-07T16:24:10Z ChoHag: It sort of does. 2021-04-07T16:24:37Z ChoHag: 42 is a constant, x is (maybe) a variable which IIRC the reports permit to be immutable. 2021-04-07T16:27:28Z Zipheir: I don't understand that. The value 42 is a literal, hence constant, but there's no such thing as a named constant. 2021-04-07T16:28:07Z Zipheir: e.g. unlike say Go with 'const Pi = 3.14159' 2021-04-07T16:28:30Z Zipheir: Maybe what I meant is that we don't have a notion of "named constants". 2021-04-07T16:29:03Z Zipheir: And thus there's no possibility of confusing constants with variables. 2021-04-07T16:56:26Z gwatt: Zipheir: I thought that the library systems in r[67]rs didn't allow exported identifiers to be set!ed, which effectively makes them constant 2021-04-07T16:56:54Z gwatt: In r6rs there's also identifier-syntax which can be used to make a named constant that is not present at runtime 2021-04-07T16:57:34Z gwatt: I guess the set! restriction on the library system actually makes them immutable variables 2021-04-07T16:59:16Z Zipheir: Interesting. 2021-04-07T16:59:41Z Major_Biscuit quit (Ping timeout: 260 seconds) 2021-04-07T17:00:45Z Zipheir: R7 only uses the word "constant" to refer to values (of literals). So I'd say immutable is indeed the right name for exported things. 2021-04-07T17:01:41Z t99_ joined #scheme 2021-04-07T17:02:12Z Zipheir: I'm guessing that the notion of a named constant goes back to macro processing. i.e. a named constant isn't a binding in some environment, it's just something that's going to be replaced with a constant value. 2021-04-07T17:04:15Z t99 quit (Ping timeout: 260 seconds) 2021-04-07T17:05:07Z Core1897 joined #scheme 2021-04-07T17:07:26Z abralek_ quit (Ping timeout: 240 seconds) 2021-04-07T17:08:53Z Zipheir: tatsumaru: In answer to your original question, a constant is just a value like 4. A variable is a name bound to a value according to the semantics of the language. If a language has named constants, they're essentially metalinguistic; like π, they just denote some value; "mutating them" would be meaningless. 2021-04-07T17:10:37Z Zipheir: Whereas there would be semantics for mutating an immutable variable: it's an error. 2021-04-07T17:11:01Z aeth_ joined #scheme 2021-04-07T17:12:26Z aeth quit (Disconnected by services) 2021-04-07T17:12:31Z aeth_ is now known as aeth 2021-04-07T17:20:57Z bitmapper joined #scheme 2021-04-07T17:22:22Z sz0 quit (Quit: Connection closed for inactivity) 2021-04-07T17:23:37Z Core1897 quit (Read error: Connection reset by peer) 2021-04-07T17:23:41Z abralek_ joined #scheme 2021-04-07T17:26:41Z notzmv quit (Ping timeout: 240 seconds) 2021-04-07T17:27:57Z s-video joined #scheme 2021-04-07T17:32:40Z amirouche: const is confusing. 2021-04-07T17:32:50Z amirouche: I do not see the point. 2021-04-07T17:32:55Z ecraven: in C? 2021-04-07T17:33:20Z amirouche: in javascript, idk C. 2021-04-07T17:33:43Z amirouche: js const says you can not change what is contained inside the variable X, when X is declared const X. 2021-04-07T17:34:05Z amirouche: BUT if X constains an array or js object, the js object remains mutable. 2021-04-07T17:35:03Z amirouche: I'd love to be explained how it can be useful. 2021-04-07T17:36:14Z Zipheir: amirouche: See what I wrote above. Named constants are, I think, a metalinguistic notion. 2021-04-07T17:37:07Z techno_chess joined #scheme 2021-04-07T17:37:12Z Zipheir: It'd be good if languages didn't confuse contants with variables in their semantics. 2021-04-07T17:37:36Z Zipheir: C's const is pretty lame. 2021-04-07T17:38:27Z nly quit (Ping timeout: 248 seconds) 2021-04-07T17:38:41Z gravicappa quit (Ping timeout: 240 seconds) 2021-04-07T17:38:56Z mdhughes: Scheme doesn't even have a lame const! 2021-04-07T17:39:20Z gravicappa joined #scheme 2021-04-07T17:39:28Z dinnu93 quit (Remote host closed the connection) 2021-04-07T17:39:30Z amirouche: what is the scoping of const xyz? js... 2021-04-07T17:39:57Z mdhughes: const & let are just syntactic sugar for 'var', so it's whatever the current scope is. 2021-04-07T17:40:02Z amirouche: also a "constant variable" sounds lame too 2021-04-07T17:40:23Z amirouche: ty 2021-04-07T17:40:35Z ecraven: mdhughes: I thought let/const had different scoping than var? 2021-04-07T17:41:08Z mdhughes: The "compiler" pretends let/const don't exist prior to their creation, but they still hoist to the top of the scope. 2021-04-07T17:41:32Z ecraven: this says differently, I think? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let#scoping_rules 2021-04-07T17:41:44Z techno_chess: the scope is different. var scopes to function, let/const can scope to block like loop and such 2021-04-07T17:42:42Z techno_chess quit (Quit: Connection closed) 2021-04-07T17:42:43Z mdhughes: It's just wrapping it in ( ... )() 2021-04-07T17:43:11Z techno_chess joined #scheme 2021-04-07T17:43:59Z Zipheir: Oof. 2021-04-07T17:46:04Z amirouche: of course, everything that is not lexical scope looks like a mess... 2021-04-07T17:46:25Z mdhughes: Oh, JS is hideous, but it really does make a certain kind of sense when you drink enough. 2021-04-07T17:48:59Z amirouche: changing subject somewhat, I got an idea how to implement a library system without any macro facility (unlike psyntax) 2021-04-07T17:49:54Z amirouche: 1) the first step is to compute dependencies between libraries and linearize with topological ordering, so dependency less libraries are on top for the scheme program. 2021-04-07T17:50:56Z amirouche: 1 bis) the program with imports and external libraries is rewritten with libraries in the same file. 2021-04-07T17:52:22Z amirouche: 2) libraries are rewritten in place in the form (let ((exported-name0 (void)) ...) (define internal-definition ...) (set! exported-name0 internal definition))... 2021-04-07T17:52:40Z amirouche: ^ that is the case of a library without imports. 2021-04-07T17:53:42Z amirouche: in the case of imports, it looks the same with a second let where imported forms are renamed according to internal use such as (let ((exported0 (void)) (let ((imported0 exported-1)) ...) 2021-04-07T17:54:46Z amirouche: sorry the (let ((exported0 (void))) is a giant let that wraps the whole program, and all libraries, will set! their exported symbols. 2021-04-07T17:55:40Z amirouche: each library is rewritten with a let that binds the variables from the outter let. 2021-04-07T17:57:48Z amirouche: There is some bookeeping to do, to a) have a unique identifier for every exported symbol, b) rebind those identifiers in rewritten libraries as let. 2021-04-07T17:59:49Z ChoHag: That sounds like a macro system with extra steps. 2021-04-07T17:59:57Z amirouche: letrec* instead of let but that still works. 2021-04-07T18:00:54Z amirouche: those steps are done by the compiler, there are macros from the user perspective, but no way for the user to implement their own macro. 2021-04-07T18:01:27Z amirouche: such as `if` is a macro, in the sense it is not a procedure, but users can not define their own macro. 2021-04-07T18:02:08Z amirouche: IIUC, using my compilation strategy, all procedures end up boxed at the moment. 2021-04-07T18:03:32Z amirouche: since (letrec* ((a (lambda ...)) body) is turned into (let ((a (void)) (set! a (lambda ...)) body) that is itself turned eventually into function(a) a = function() { ... } body} 2021-04-07T18:04:32Z amirouche: more or less the boxing. 2021-04-07T18:07:18Z amirouche: In particular, in my case, since there is no way for the user to define macros, there is no notion of visting a library or invoking a library (to be able to expand a macro application that rely on a form (syntax or procedure) defined in another library) 2021-04-07T18:19:40Z techno_chess: consider you were making a web framework that deals with rest / json requests (ie spa instead of mpa). How would you deal with serialization? 2021-04-07T18:19:40Z techno_chess: Option a, use records for business logic, serialize with reflection; cons is that its not portable. 2021-04-07T18:19:41Z techno_chess: Option b, use records for business logic, serialize with manually written helper functions; cons is quite hefty boilerplate work. 2021-04-07T18:19:41Z techno_chess: Option c, use same datastructure for logic as that as the one directly serializable to json (ie alist instead of record); cons is weaker typesafety 2021-04-07T18:21:05Z amirouche: frontend side or backend side ? 2021-04-07T18:21:59Z amirouche: There is option d where your json serialization knows about your records. 2021-04-07T18:22:16Z amirouche: that is option a? 2021-04-07T18:23:45Z techno_chess: backend 2021-04-07T18:24:45Z ChoHag: What part is the web playing in the affair? 2021-04-07T18:25:05Z badkins quit (Remote host closed the connection) 2021-04-07T18:26:41Z badkins joined #scheme 2021-04-07T18:26:48Z ChoHag: What does it look like when you abstract that part out? 2021-04-07T18:31:37Z mdhughes: Serialization like your database? Use a database. 2021-04-07T18:32:00Z mdhughes: You shouldn't be trying to persist data from code, except in the most trivial cases. 2021-04-07T18:32:43Z techno_chess quit (Ping timeout: 240 seconds) 2021-04-07T18:35:58Z justinethier quit (Quit: Connection closed) 2021-04-07T18:40:47Z techno_chess joined #scheme 2021-04-07T18:41:13Z techno_chess: no I mean serialization to rest response 2021-04-07T18:50:12Z amirouche: what i recommend with python with sql database is to not rely on a wrapper class, and deal with the record object returned by the database driver. Except in rare case, where the user request the full row of a table, most of the time database queries contains only a partial view of the row possibly mixed with data from other tables etc... 2021-04-07T18:50:33Z amirouche: mapping table -> record or class => does not make sense. 2021-04-07T18:50:53Z amirouche: that way you need ad-hoc code to serialize in any case. 2021-04-07T18:51:35Z amirouche: the case where you can do it with introspection is when you query the full row, but that case is rare. 2021-04-07T18:52:27Z amirouche: rare hence it can be handled with ad-hoc code too hence no need for introspection or whatever. 2021-04-07T18:53:16Z amirouche: The alternative would be to have class or record per queries, in python, it is not practical imo. 2021-04-07T18:53:45Z amirouche: (note: my database driver in python return object of the type Record) 2021-04-07T18:54:28Z amirouche: (where each attribute map to a column name in SELECT column1, column2 etc... of the query. Such as record.column1 is the related value) 2021-04-07T18:54:52Z amirouche: (they are like namedtuple, but more efficient) 2021-04-07T18:56:21Z amirouche: basically, the "fully automated with introspection" only makes sense for *basic* crud operations over REST. IME, it is not worth it to "frameworkize" 2021-04-07T18:58:33Z amirouche: techno_chess: does it help? 2021-04-07T19:00:07Z techno_chess: I was more so asking about just rest part, ie unrelated to crud / db, but I guess your point is still strongly leaning to what was option c in my initial question 2021-04-07T19:01:54Z amirouche: I have not direct answer for that, maybe they are cases where records in business logic makes sense, but even with Python, wrapping everything in classes is pain to debug, so I prefer low level dict or list. 2021-04-07T19:04:17Z amirouche: Also, to be scheme specific, depending on your Scheme implementation, printing record might be nice or not. IME it is not nice, and I almost always rely on specific procedures to turn into something readable / printable. That is to say: even if you have records (complex datastructure), you will win with a my-record->alist. Many SRFI datastructure have ->alist ->list helpers. 2021-04-07T19:04:44Z wasamasa: I found records to be highly preferable over SICP-style data encoding 2021-04-07T19:04:57Z wasamasa: better than ad-hoc manipulation of lists 2021-04-07T19:05:33Z amirouche: tl;dr: it depends ^^ 2021-04-07T19:05:57Z wasamasa: you discover errors earlier and it makes code clearer 2021-04-07T19:06:09Z wasamasa: no way to accidentally bypass the abstraction 2021-04-07T19:07:29Z amirouche: well, in my last scheme project with aho-corasick, the output is list. The previous one that implement markov chain, returns a string. 2021-04-07T19:07:54Z amirouche: I do not claim it generalize. 2021-04-07T19:08:10Z amirouche: but it goes beyond the simple CRUD. 2021-04-07T19:15:18Z tatsumaru: Zipheir, if I understand correctly, const is a feature in some languages that allows you to create immutable variables 2021-04-07T19:17:18Z Zipheir: That's not what I meant. 2021-04-07T19:17:48Z tatsumaru: I didn't mean to say that that's what I understood from what you said, but rather what I understood after reading around 2021-04-07T19:18:16Z Zipheir: OK, yes. It's a rather unfortunate confusion of terms. 2021-04-07T19:19:12Z Zipheir: ... which Scheme has not fallen into. 2021-04-07T19:19:15Z ecraven: isn't const often about immutability of pointers, not contents? 2021-04-07T19:19:36Z ecraven: or maybe "immediate value" is a better term 2021-04-07T19:22:26Z Zipheir: The idea gets so much more subtle when a language also has a notion of constant pointers. 2021-04-07T19:23:52Z gravicappa quit (Ping timeout: 268 seconds) 2021-04-07T19:24:05Z gwatt: In C: "*const int" is a constant pointer to a mutable integer, "const *int" and "const int*" are both mutable pointers to constant ints, and "*const *int" and "*const int*" are both constant pointers to constant integers. 2021-04-07T19:24:27Z notzmv joined #scheme 2021-04-07T19:24:44Z skapata joined #scheme 2021-04-07T19:25:41Z Oxyd: In C, *const int, const *int, *const *int and *const int* are all syntax errors. 2021-04-07T19:26:14Z gwatt: hmm, i might be misremembering 2021-04-07T19:26:35Z Oxyd: int* const is a constant pointer to mutable integer. int const* and const int* are mutable pointers to immutable integers, and int const* const and const int* const are immutable pointers to immutable integers. 2021-04-07T19:26:56Z gwatt: oh, you move const around, wacky 2021-04-07T19:28:54Z Oxyd: Scheme also has a concept of constness, though not one built into the language itself. In Scheme, you normally expect procedures not to mutate their arguments, so you might say they all take const arguments. But sometimes there are what Schemers call “linear update” procedures with exclamation points at the end, which may or may not mutate their arguments, so those are the non-const versions. 2021-04-07T19:30:29Z lritter quit (Ping timeout: 252 seconds) 2021-04-07T19:33:34Z Oxyd: Having const in Scheme might be interesting. I suppose it would be schemier to flip it around and have const be the default and explicitly mark mutability. So you might have the non-mutable (reverse lst) and (reverse (mutable lst)) be the linear-update version. 2021-04-07T19:34:51Z Oxyd: Though that's getting precariously close to static typing. :) 2021-04-07T19:43:36Z supercoven_ quit (Ping timeout: 260 seconds) 2021-04-07T19:45:49Z techno_chess: well, there is the idea of static immutable scheme floating around (with intention to be called from regular scheme that would be handling impure parts of program), though nothing concrete has settled yet 2021-04-07T19:47:45Z tatsumaru left #scheme 2021-04-07T19:55:03Z techno_chess quit (Quit: Connection closed) 2021-04-07T20:01:51Z phossil joined #scheme 2021-04-07T20:06:35Z evdubs quit (Remote host closed the connection) 2021-04-07T20:07:08Z evdubs joined #scheme 2021-04-07T20:08:05Z evdubs quit (Remote host closed the connection) 2021-04-07T20:08:32Z evdubs joined #scheme 2021-04-07T20:09:59Z klovett quit (Remote host closed the connection) 2021-04-07T20:10:34Z klovett joined #scheme 2021-04-07T20:22:19Z shawnw joined #scheme 2021-04-07T20:28:45Z DHARMAKAYA joined #scheme 2021-04-07T20:31:34Z badkins quit (Remote host closed the connection) 2021-04-07T20:32:01Z phossil quit (Quit: Konversation terminated!) 2021-04-07T20:32:09Z badkins joined #scheme 2021-04-07T20:34:32Z badkins quit (Remote host closed the connection) 2021-04-07T20:34:47Z badkins joined #scheme 2021-04-07T20:40:20Z jeko joined #scheme 2021-04-07T20:41:45Z notzmv quit (Ping timeout: 260 seconds) 2021-04-07T20:45:55Z t99_ quit (Ping timeout: 260 seconds) 2021-04-07T20:56:02Z notzmv joined #scheme 2021-04-07T21:00:50Z notzmv quit (Ping timeout: 246 seconds) 2021-04-07T21:00:53Z klovett quit (Remote host closed the connection) 2021-04-07T21:01:11Z klovett joined #scheme 2021-04-07T21:04:18Z badkins quit (Remote host closed the connection) 2021-04-07T21:06:56Z phossil_ joined #scheme 2021-04-07T21:09:58Z jeko quit (Quit: jeko) 2021-04-07T21:11:20Z t99 joined #scheme 2021-04-07T21:13:37Z tatsumaru joined #scheme 2021-04-07T21:16:09Z techno_chess joined #scheme 2021-04-07T21:17:39Z skapata quit (Ping timeout: 260 seconds) 2021-04-07T21:19:41Z jobol quit (Quit: Leaving) 2021-04-07T21:23:29Z tatsumaru left #scheme 2021-04-07T21:31:27Z skapata joined #scheme 2021-04-07T21:38:23Z raingloom joined #scheme 2021-04-07T21:46:02Z dieggsy: damn, rosetta code finally got sick of me 2021-04-07T21:46:41Z notzmv joined #scheme 2021-04-07T21:53:07Z notzmv quit (Ping timeout: 260 seconds) 2021-04-07T21:53:42Z notzmv joined #scheme 2021-04-07T21:57:22Z techno_chess quit (Ping timeout: 240 seconds) 2021-04-07T21:57:53Z DHARMAKAYA quit (Ping timeout: 246 seconds) 2021-04-07T22:03:17Z cjb joined #scheme 2021-04-07T22:07:02Z phossil_ quit (Quit: Konversation terminated!) 2021-04-07T22:17:23Z notzmv quit (Ping timeout: 260 seconds) 2021-04-07T22:19:15Z civodul quit (Ping timeout: 260 seconds) 2021-04-07T22:25:10Z wklew quit (Ping timeout: 268 seconds) 2021-04-07T22:26:43Z DGASAU quit (Ping timeout: 260 seconds) 2021-04-07T22:31:38Z wklew joined #scheme 2021-04-07T22:52:02Z rj quit (Quit: rj) 2021-04-07T22:54:43Z wklew quit (Ping timeout: 248 seconds) 2021-04-07T22:54:54Z notzmv joined #scheme 2021-04-07T23:04:59Z rgherdt quit (Ping timeout: 260 seconds) 2021-04-07T23:17:49Z abralek_ quit (Ping timeout: 252 seconds) 2021-04-07T23:18:19Z wklew joined #scheme 2021-04-07T23:23:16Z sxmx quit (Quit: WeeChat 3.1) 2021-04-07T23:25:18Z phossil_ joined #scheme 2021-04-07T23:26:19Z phossil joined #scheme 2021-04-07T23:36:11Z t99 quit (Ping timeout: 240 seconds) 2021-04-07T23:43:52Z sxmx joined #scheme 2021-04-07T23:45:13Z torbo joined #scheme 2021-04-07T23:47:00Z phossil_ quit (Quit: Konversation terminated!) 2021-04-07T23:47:12Z s-video quit (Ping timeout: 258 seconds) 2021-04-07T23:48:17Z s-video joined #scheme 2021-04-08T00:12:50Z montxero joined #scheme 2021-04-08T00:23:38Z Zipheir quit (Quit: Eadem mutata resurgo.) 2021-04-08T00:24:49Z eddof13 quit (Ping timeout: 268 seconds) 2021-04-08T00:27:47Z Zipheir joined #scheme 2021-04-08T00:38:19Z skapata quit (Remote host closed the connection) 2021-04-08T00:43:27Z s-video quit (Ping timeout: 260 seconds) 2021-04-08T00:48:04Z klovett quit (Remote host closed the connection) 2021-04-08T00:48:44Z klovett joined #scheme 2021-04-08T00:57:07Z s-video joined #scheme 2021-04-08T01:07:27Z Formbi quit (Ping timeout: 252 seconds) 2021-04-08T01:15:40Z brendyyn joined #scheme 2021-04-08T01:21:47Z Formbi joined #scheme 2021-04-08T01:26:59Z DHARMAKAYA joined #scheme 2021-04-08T01:28:15Z DHARMAKAYA quit (Excess Flood) 2021-04-08T01:28:41Z notzmv quit (Ping timeout: 240 seconds) 2021-04-08T01:31:36Z DHARMAKAYA joined #scheme 2021-04-08T01:31:54Z logand``` joined #scheme 2021-04-08T01:35:26Z logand`` quit (Ping timeout: 240 seconds) 2021-04-08T01:37:17Z trcm quit (Remote host closed the connection) 2021-04-08T01:38:06Z torbo quit (Remote host closed the connection) 2021-04-08T01:38:28Z trcm joined #scheme 2021-04-08T01:39:19Z notzmv joined #scheme 2021-04-08T01:53:18Z fadein quit (Ping timeout: 240 seconds) 2021-04-08T01:54:37Z fadein joined #scheme 2021-04-08T01:59:21Z montxero quit (Remote host closed the connection) 2021-04-08T02:03:46Z DHARMAKAYA quit (Read error: Connection reset by peer) 2021-04-08T02:24:48Z lockywolf: in the assoc subroutine with a compare predicate, the order of arguments to compare is not specified? 2021-04-08T02:44:26Z phossil quit (Quit: Leaving) 2021-04-08T02:57:38Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-08T02:58:00Z klovett quit (Remote host closed the connection) 2021-04-08T02:58:16Z klovett joined #scheme 2021-04-08T03:03:03Z jao quit (Read error: Connection reset by peer) 2021-04-08T03:07:10Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-04-08T03:07:33Z scm_ quit (Quit: Leaving) 2021-04-08T03:14:04Z xlei quit (Read error: Connection reset by peer) 2021-04-08T03:17:44Z jao joined #scheme 2021-04-08T03:19:05Z DHARMAKAYA joined #scheme 2021-04-08T03:21:54Z Zipheir: lockywolf: It doesn't seem to be. 2021-04-08T03:22:34Z lockywolf: :( 2021-04-08T03:22:46Z Zipheir: I assume the standard expects it to describe a symmetric relation. 2021-04-08T03:23:47Z wklew quit (Remote host closed the connection) 2021-04-08T03:29:05Z raingloom quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-08T03:33:19Z jao quit (Read error: Connection reset by peer) 2021-04-08T03:33:49Z ChoHag: The scheme standard's big on pretending it's not sequential and order is a myth. 2021-04-08T03:34:32Z Zipheir: Not in the case of for-each. 2021-04-08T03:34:57Z ChoHag: That's one of the explicitly-sequential operators iirc. 2021-04-08T03:35:21Z ChoHag: "map, but ordered" 2021-04-08T03:35:23Z Zipheir: But the order of parameters is usually made clear. It's a little surprising that it's unspecified in assoc's case. 2021-04-08T03:35:27Z jao joined #scheme 2021-04-08T03:36:05Z Zipheir: ChoHag: Sort of. The results are discarded. 2021-04-08T03:43:37Z DanklyTuned quit (Quit: nyaa~) 2021-04-08T03:44:09Z phillbush quit (Quit: Leaving) 2021-04-08T03:49:30Z lockywolf: it's actually useful 2021-04-08T03:49:42Z lockywolf: if the comparator is, say < 2021-04-08T03:50:26Z lockywolf: "give me the first association that has the key that is less than than my key" 2021-04-08T03:50:59Z sxmx quit (Quit: WeeChat 3.1) 2021-04-08T03:51:59Z notzmv quit (Ping timeout: 260 seconds) 2021-04-08T03:52:10Z lockywolf: is there a common idiom for (if (assoc k l) (cadr 《it》) #f) ? 2021-04-08T03:52:53Z lockywolf: Where 《it》is the result of assoc. 2021-04-08T03:52:58Z Zipheir: You mean (cond ((assoc k l) => (lambda (p) ...) (else ...)) ? 2021-04-08T03:53:43Z Zipheir: What are those characters? They're not showing up as valid unicode here. 2021-04-08T03:54:59Z lockywolf: U+300A 2021-04-08T03:55:28Z lockywolf: https://en.wiktionary.org/wiki/%E3%80%8A_%E3%80%8B 2021-04-08T03:55:56Z Zipheir: Ah, ok. 2021-04-08T03:57:32Z lockywolf: cond seems almost as verbose as (let ((discard (assoc ...))) (if discard (cadr discard) #f)) 2021-04-08T03:57:40Z lockywolf: may be a little shorter 2021-04-08T03:57:49Z Zipheir: I don't know of any idiom that gives you just the cdr of the pair that assoc (may) find. 2021-04-08T03:58:26Z Zipheir: (match (assoc k l) (`(,k . ,v) ...) (#f ...)) is reasonable. 2021-04-08T03:59:55Z DHARMAKAYA quit (Ping timeout: 260 seconds) 2021-04-08T04:02:03Z lockywolf: wow, that's cool 2021-04-08T04:02:52Z motersen quit (Remote host closed the connection) 2021-04-08T04:03:05Z Zipheir: If your Scheme provides matching, it often makes things more concise. 2021-04-08T04:03:09Z motersen joined #scheme 2021-04-08T04:03:47Z Zipheir: If not, you can always use Oleg's pmatch as a tiny portable drop-in matching library. https://github.com/webyrd/quines/blob/master/pmatch.scm 2021-04-08T04:05:33Z zooey quit (Ping timeout: 240 seconds) 2021-04-08T04:07:41Z daviid: Zipheir: fwiw, in guile, assq-ref, assv-ref and assoc-ref ... 2021-04-08T04:09:35Z zooey joined #scheme 2021-04-08T04:11:57Z phossil joined #scheme 2021-04-08T04:13:24Z marusich joined #scheme 2021-04-08T04:13:37Z Zipheir: daviid: Good to know. I bet most Schemes have something for that. 2021-04-08T04:15:49Z cjb quit 2021-04-08T04:18:27Z phossil is now known as tophullyte 2021-04-08T04:18:54Z tophullyte quit (Quit: Leaving) 2021-04-08T04:20:06Z alelos quit (Quit: ZNC 1.8.1 - https://znc.in) 2021-04-08T04:24:45Z alelos joined #scheme 2021-04-08T04:27:02Z tophullyte joined #scheme 2021-04-08T04:37:01Z tophullyte quit (Quit: Leaving) 2021-04-08T04:42:57Z gravicappa joined #scheme 2021-04-08T04:50:46Z tophullyte joined #scheme 2021-04-08T04:59:17Z marusich quit (Ping timeout: 246 seconds) 2021-04-08T05:03:06Z jao quit (Ping timeout: 240 seconds) 2021-04-08T05:22:23Z notzmv joined #scheme 2021-04-08T05:24:01Z siraben: Zipheir: bah, that requires syntax-rules to be implemented 2021-04-08T05:27:08Z Zipheir: siraben: pmatch? 2021-04-08T05:27:45Z siraben: Zipheir: yes 2021-04-08T05:27:47Z trcm quit (Remote host closed the connection) 2021-04-08T05:28:27Z siraben: implementing macro expansion is annoying in that, even in a typed language such as haskell, macro expansion has many subtle edge cases 2021-04-08T05:29:28Z Zipheir: True. But every post-R4RS Scheme has syntax-rules. 2021-04-08T05:30:14Z Zipheir: siraben: Do you think a useful pattern-matching form that doesn't use macros is possible? 2021-04-08T05:31:54Z siraben: Zipheir: oh if implemented entirely in Scheme? 2021-04-08T05:32:10Z siraben: I've implemented a pattern matcher in Scheme before but of course the input has to be quoted 2021-04-08T05:32:24Z Zipheir: siraben: Yeah, quote is right out. 2021-04-08T05:40:35Z Zipheir: If we could just auto-quote the values we were interested in and pass the quoted representation to a procedural matcher, we'd have ... defmacro. 2021-04-08T05:41:41Z siraben: we've gone full circle! 2021-04-08T05:58:12Z abralek_ joined #scheme 2021-04-08T05:59:19Z iv4nshm4k-v joined #scheme 2021-04-08T05:59:47Z tophullyte quit (Ping timeout: 248 seconds) 2021-04-08T06:00:55Z lockywolf: fwiw, I added 8-color dircolors support to the visualiser 2021-04-08T06:13:11Z shawnw quit (Ping timeout: 240 seconds) 2021-04-08T06:17:00Z jobol joined #scheme 2021-04-08T06:20:31Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-08T06:30:11Z ChoHag: I think I got quasiquoting right this time. 2021-04-08T06:30:50Z Major_Biscuit joined #scheme 2021-04-08T06:30:57Z rgherdt joined #scheme 2021-04-08T06:31:33Z ChoHag: syntax-rules is the next step I guess... 2021-04-08T06:41:51Z gproto23 joined #scheme 2021-04-08T06:51:11Z gnomon quit (Ping timeout: 240 seconds) 2021-04-08T06:54:55Z shawnw joined #scheme 2021-04-08T06:57:00Z rdd joined #scheme 2021-04-08T06:57:19Z sxmx joined #scheme 2021-04-08T07:00:07Z rdd left #scheme 2021-04-08T07:00:16Z lockywolf: there is a nice scheme metainterpreter in syntax-rules 2021-04-08T07:02:29Z skapata joined #scheme 2021-04-08T07:06:31Z civodul joined #scheme 2021-04-08T07:08:24Z dpk: Emacs calls (cdr (assoc ...)) alist-get; Scheme needs it badly, i feel. i assume it's in one of the numerous R7RS Large proposals around dictionaries, association lists, property lists, etc etc ... 2021-04-08T07:09:00Z dpk: (perhaps better called alist-ref in Scheme context, c.f. hash-table-ref) 2021-04-08T07:31:06Z mdhughes: I call mine alref 2021-04-08T07:34:55Z mdhughes: Also I check for false, nulls, and if it's a 2-list instead of a pair I return cadr instead of cdr… Lot of edge cases in alists. 2021-04-08T07:43:33Z zooey quit (Ping timeout: 240 seconds) 2021-04-08T07:44:33Z zooey joined #scheme 2021-04-08T07:53:16Z Aquazi joined #scheme 2021-04-08T08:06:46Z hendursaga joined #scheme 2021-04-08T08:09:09Z hendursa1 quit (Ping timeout: 240 seconds) 2021-04-08T08:11:31Z t99 joined #scheme 2021-04-08T08:25:55Z s-video quit (Ping timeout: 248 seconds) 2021-04-08T08:56:29Z frost-lab joined #scheme 2021-04-08T09:07:40Z nly joined #scheme 2021-04-08T09:16:21Z gproto23 quit (Ping timeout: 260 seconds) 2021-04-08T09:21:19Z gproto23 joined #scheme 2021-04-08T09:23:03Z lritter joined #scheme 2021-04-08T09:24:25Z mdhughes quit 2021-04-08T09:39:10Z mdhughes joined #scheme 2021-04-08T09:42:28Z amirouche: https://github.com/google/wuffs/blob/main/doc/note/assertions.md 2021-04-08T09:42:57Z amirouche: ^ wuffs will use assertion to proove stuff about the program, and fail compilation if it can not. 2021-04-08T10:07:49Z TCZ joined #scheme 2021-04-08T10:13:30Z iv4nshm4k-v left #scheme 2021-04-08T10:26:16Z skapata quit (Remote host closed the connection) 2021-04-08T10:27:12Z dpk: jcowan: am i right in thinking that the difference between ( Although CNNs were invented in the 1980s, their breakthrough in the 2000s required fast implementations on graphics processing units (GPUs). 2021-04-08T13:03:39Z gproto23 quit (Remote host closed the connection) 2021-04-08T13:03:56Z wasamasa: there are plenty old books showing examples of doing things like handwriting recognition with lisp 2021-04-08T13:04:02Z wasamasa: with tiny neural networks 2021-04-08T13:04:11Z wasamasa: and stuff like evolutionary algorithms 2021-04-08T13:04:18Z wasamasa: which even made it into Land of Lisp 2021-04-08T13:05:26Z tatsumaru: is this the same like genetic algorithms 2021-04-08T13:05:44Z wasamasa: yes 2021-04-08T13:06:09Z wasamasa: https://en.wikipedia.org/wiki/Perceptron explains the overall timeline of neural networks 2021-04-08T13:06:38Z tatsumaru: that was enlightening, thanks wasamasa 2021-04-08T13:07:01Z wasamasa: and https://en.wikipedia.org/wiki/Machine_learning its relation to AI 2021-04-08T13:07:18Z wasamasa: symbolic AI is out, machine learning is in 2021-04-08T13:07:29Z wasamasa: sure, feel free to experiment with the old stuff 2021-04-08T13:07:39Z wasamasa: it's probably a fun hobby project 2021-04-08T13:08:02Z wasamasa: but also consider to take the lessons from machine learning 2021-04-08T13:08:55Z wasamasa: like recognizing useful heuristics, doing basic statistics and writing down that business logic you recognize from the data encountered in the wild 2021-04-08T13:09:04Z wasamasa: this will give you most of the benefits at a fraction of effort 2021-04-08T13:09:18Z wasamasa: and your code will stay debuggable, unlike the blackbox that most machine learning systems tend to be 2021-04-08T13:11:22Z tatsumaru: sorry i didn't understand your last three sentences. did you mean to study when ML projects had failed or how to apply ml to my projects? 2021-04-08T13:11:57Z wasamasa: I wouldn't really call it studying, I mostly observe this stuff as it happens around me and fails in increasingly comical ways 2021-04-08T13:13:06Z wasamasa: what I'm telling you to do is to use boring, but reliable approaches to solving similar problems 2021-04-08T13:13:37Z tatsumaru: instead of ML? 2021-04-08T13:13:41Z wasamasa: yes 2021-04-08T13:13:48Z tatsumaru: ah i get it now, thanks 2021-04-08T13:13:53Z wasamasa: I can give you a bunch of examples 2021-04-08T13:13:57Z tatsumaru: please do 2021-04-08T13:14:06Z wasamasa: like, there was this CTF challenge where you had to circumvent a captcha 2021-04-08T13:14:25Z wasamasa: most teams pulled out a python ML library to solve this, but there was one team being smarter than that 2021-04-08T13:14:37Z badkins joined #scheme 2021-04-08T13:15:05Z wasamasa: they recognized that there were less than 10 distinct captcha images generated, so they wrote a script to download them all, calculate the MD5 hash, wrote down the captcha value and wrote a script mapping MD5 hash to the manually recognized value 2021-04-08T13:15:13Z wasamasa: and with that they beat the captcha with minimum effort 2021-04-08T13:15:29Z badkins quit (Remote host closed the connection) 2021-04-08T13:15:43Z tatsumaru: so basically what you are saying is, careful not to become a lazy thinker because of ml and use your own brain 2021-04-08T13:15:46Z wasamasa: yes 2021-04-08T13:16:12Z wasamasa: or think of the story where someone beat a big data hadoop project with GNU coreutils and a long shell oneliner 2021-04-08T13:16:15Z gproto23 joined #scheme 2021-04-08T13:16:24Z wasamasa: or the russians in space using a pencil instead of an expensive ballpoint pen 2021-04-08T13:16:53Z ChoHag: That one's not true and pencils in space-ships are a bad idea. 2021-04-08T13:17:16Z tatsumaru: ChoHag why are pencils in space bad? because they are sharp? 2021-04-08T13:17:39Z ChoHag: Graphite is electronically conductive and there's no gravity to keep it on the floor. 2021-04-08T13:17:58Z nly: because tips can break 2021-04-08T13:18:02Z tatsumaru: so the tiny dust release on writing could cause problems? 2021-04-08T13:18:16Z ChoHag: That's what I read. 2021-04-08T13:18:39Z tatsumaru: interesting, the should've went with a piece of charcoal then 2021-04-08T13:18:46Z ChoHag: I don't know what the Russians did but the space pen was invented commercially for other reasons then NASA allowed/persuaded to use it. 2021-04-08T13:19:07Z wasamasa: meh 2021-04-08T13:19:12Z ChoHag: Whatever they did though it got them into space. 2021-04-08T13:19:37Z tatsumaru: ChoHag also there are non-graphite pencils too like coloring pencils 2021-04-08T13:19:48Z wasamasa: yeah, but engineers typically use pencils 2021-04-08T13:20:20Z wasamasa: I've only seen artists go for blue pencils 2021-04-08T13:21:25Z tatsumaru: could you imagine the space program failing because of engineers not liking blue 2021-04-08T13:21:42Z wasamasa: the point of using blue was it being a light enough color to disappear when taking copies 2021-04-08T13:21:53Z wasamasa: so no, that wouldn't fly :D 2021-04-08T13:23:12Z tatsumaru: *drum and cymbals sound effect* 2021-04-08T13:24:49Z tatsumaru: aka *ba dum tss* 2021-04-08T13:26:25Z t99 quit (Quit: Lost terminal) 2021-04-08T13:28:57Z brendyyn quit (Ping timeout: 265 seconds) 2021-04-08T13:49:15Z badkins joined #scheme 2021-04-08T13:54:17Z tatsumaru: wasamasa what do you think is the difference between the ML bruteforce simulation of intelligence and the actual thinking people are capable of 2021-04-08T14:02:48Z foof: lockywolf: documentation issues fixed, I'll upload a new manual later 2021-04-08T14:04:01Z lockywolf: thanks a lot! 2021-04-08T14:04:47Z ChoHag: The ML simulation certainly happens. 2021-04-08T14:08:05Z lockywolf: I came to the lisp world, because I wanted to learn a lispy interfact to tensorflow. 2021-04-08T14:08:26Z ChoHag: And like the Hotel California...? 2021-04-08T14:08:33Z tatsumaru: lockywolf what is interfact 2021-04-08T14:08:39Z ChoHag: interface 2021-04-08T14:08:50Z lockywolf: *interface 2021-04-08T14:09:02Z tatsumaru: lockywolf which lispy interface did you learn? 2021-04-08T14:09:07Z lockywolf: Hy 2021-04-08T14:09:12Z wasamasa: the brain is a complete mystery to me 2021-04-08T14:09:15Z wasamasa: and that's good 2021-04-08T14:09:28Z lockywolf: but I understood that just knowing syntax is not enough 2021-04-08T14:09:38Z wasamasa: if I could understand my brain, it would mean I'm dumb because then it's not nearly complicated enough to understand 2021-04-08T14:09:48Z wasamasa: but if I were dumb, I could probably not understand it either 2021-04-08T14:09:49Z lockywolf: tbh, "lazy scheme" is not unlike computational graphs in TF 2021-04-08T14:09:53Z wasamasa: so it's a funny equilibrium 2021-04-08T14:10:21Z tatsumaru: wasamasa that sounds a bit like "I wouldn't ever join a club, that would have me." 2021-04-08T14:10:25Z wasamasa: yes 2021-04-08T14:10:34Z wasamasa: I decided against looking into MENSA 2021-04-08T14:10:43Z lockywolf: I think there should be a scheme-y dsl for tensorflow. But I last touched TF in 2017. Maybe one already exists. 2021-04-08T14:11:35Z wasamasa: I've kept wondering what it would be like to hang out with other smart people, but eventually I realized that hanging out at the hackerspace and in the hacking communities is plenty 2021-04-08T14:12:03Z wasamasa: and being open towards all kinds of people is lots more fascinating than being elitist 2021-04-08T14:13:09Z tatsumaru: #scheme in my opinion is one of the most interesting places to be in, I've personally improved the quality of my thinking simply by observing the attitude towards programming and CS of people here 2021-04-08T14:18:50Z gproto023 joined #scheme 2021-04-08T14:21:37Z gproto23 quit (Ping timeout: 268 seconds) 2021-04-08T14:29:57Z wklew quit (Ping timeout: 260 seconds) 2021-04-08T14:36:29Z gproto023 quit (Quit: Leaving) 2021-04-08T14:36:46Z gproto23 joined #scheme 2021-04-08T14:41:13Z tatsumaru left #scheme 2021-04-08T14:42:03Z lockywolf: has anybody managed to run psd on a modern scheme? 2021-04-08T14:42:12Z lockywolf: any modern scheme 2021-04-08T14:50:08Z Zipheir: I'd argue against adding an alist-ref (cdr after assoc) form to Scheme, on the grounds that (a) it's an easy-to-write three-line procedure, and (b) looking up keys in alists is for toy programs, anyway. 2021-04-08T14:51:09Z Zipheir: IIRC someone was going to write an alists SRFI collecting the various alist forms that people have come up with over the years. 2021-04-08T14:59:24Z ecraven: you do realize that for n < 10 or so alists are the fastest by far? so if you have short lists, they are the best choice 2021-04-08T15:00:53Z Zipheir: In that situation, you write alist-ref. Assuming you're very certain of that bound. 2021-04-08T15:02:29Z wasamasa: lockywolf: the debugger? 2021-04-08T15:02:39Z lockywolf: yes 2021-04-08T15:02:40Z dpk: according to the abstract heresies blog it's more like n < 50, though likely depends how good your hash table/binary tree/whatever implementation is 2021-04-08T15:02:54Z wasamasa: I've considered trying it, but after trying feathers, I lost any motivation 2021-04-08T15:04:21Z dpk: MIT Scheme, the limit is around 30 http://funcall.blogspot.com/2016/01/alist-vs-hash-table.html 2021-04-08T15:07:12Z Zipheir: I'd be interested to see how they benchmark against various trees. 2021-04-08T15:09:40Z Zipheir: Although in relying on benchmarks for such things we're trading analysis for demonology. :) 2021-04-08T15:15:57Z elfenix quit (Quit: Leaving) 2021-04-08T15:19:38Z krjli joined #scheme 2021-04-08T15:26:14Z badkins quit (Remote host closed the connection) 2021-04-08T15:26:18Z nly quit (Ping timeout: 240 seconds) 2021-04-08T15:26:53Z badkins joined #scheme 2021-04-08T15:31:41Z badkins quit (Ping timeout: 240 seconds) 2021-04-08T15:32:29Z fgudin quit (Quit: Lost terminal) 2021-04-08T15:50:28Z badkins joined #scheme 2021-04-08T16:21:05Z Core2482 joined #scheme 2021-04-08T16:23:15Z abralek_ quit (Ping timeout: 248 seconds) 2021-04-08T16:25:28Z s-video joined #scheme 2021-04-08T16:30:53Z Pixel_Outlaw joined #scheme 2021-04-08T16:31:15Z jobol quit (Ping timeout: 260 seconds) 2021-04-08T16:32:52Z acarrico quit (Quit: Leaving.) 2021-04-08T16:33:07Z krjli quit (Ping timeout: 260 seconds) 2021-04-08T16:33:37Z raingloom quit (Ping timeout: 260 seconds) 2021-04-08T16:33:52Z abralek_ joined #scheme 2021-04-08T16:33:52Z Core2482 quit (Read error: Connection reset by peer) 2021-04-08T16:44:17Z Major_Biscuit quit (Ping timeout: 252 seconds) 2021-04-08T16:50:49Z tophullyte joined #scheme 2021-04-08T16:51:54Z jobol joined #scheme 2021-04-08T17:01:09Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-08T17:13:08Z badkins quit (Remote host closed the connection) 2021-04-08T17:13:44Z badkins joined #scheme 2021-04-08T17:19:01Z badkins quit (Ping timeout: 265 seconds) 2021-04-08T17:30:49Z gproto023 joined #scheme 2021-04-08T17:32:39Z bitmapper joined #scheme 2021-04-08T17:32:48Z mmmattyx joined #scheme 2021-04-08T17:33:11Z gproto23 quit (Ping timeout: 246 seconds) 2021-04-08T17:43:30Z midow joined #scheme 2021-04-08T17:45:07Z gproto023 quit (Ping timeout: 265 seconds) 2021-04-08T17:45:33Z badkins joined #scheme 2021-04-08T17:50:52Z tatsumaru joined #scheme 2021-04-08T17:51:23Z tatsumaru: in your experience what makes you a better programmer more - thinking about programming, learning about programming, programming ? 2021-04-08T17:57:06Z wklew joined #scheme 2021-04-08T17:57:59Z evdubs quit (Quit: Leaving) 2021-04-08T17:58:20Z evdubs joined #scheme 2021-04-08T17:58:38Z amirouche: all of them :) 2021-04-08T17:59:08Z tatsumaru: do you think programming makes you smarter as a person or rather programmers are just already smart people who just learn how to code? 2021-04-08T17:59:30Z tatsumaru: i guess both options are not mutually exclusive 2021-04-08T18:00:24Z tatsumaru: what I am trying to say though is that if you can become significantly smarter simply by programming or you have to be significantly smart already and then programming only leverages this intelligence rather than develop it that much 2021-04-08T18:00:25Z Pixel_Outlaw: I think the best way to become a good programmer is to not worry about the act of programming but rather building on what you know and reading code from working programs by people more advanced than you. 2021-04-08T18:01:46Z amirouche: you do not need to be smart to program, but you are certainly stupid to continue :P 2021-04-08T18:01:58Z Pixel_Outlaw: Some people won't even become smarter programming, because they never keep pushing themselves. They'll continue to write the same types of programs in the same ways and reject reading the manual and learning new things. That happens a lot in the business world. 2021-04-08T18:02:12Z amirouche: +1 2021-04-08T18:02:27Z evdubs quit (Remote host closed the connection) 2021-04-08T18:02:48Z amirouche: I think programming is the ultimate literacy, but that does not mean those who program are smart or smarter. 2021-04-08T18:02:51Z Pixel_Outlaw: I'm a manager for men who wrote really really bad COBOL. They have no idea how algorithms work and just churned out garbage for 40 years. 2021-04-08T18:02:51Z evdubs joined #scheme 2021-04-08T18:03:15Z tatsumaru: I agree, repetitive stuff, routines, complacency don't affect the quality of the brain that much if at all, however I am curious if people are pushing themselves if that really works to improve the capacity to solve problems of a person or you just hit a wall and accept it. 2021-04-08T18:03:34Z amirouche: it depends on the community! 2021-04-08T18:04:06Z amirouche: In my previous community, I was trying to push myself alone, where with other communities, there is a sense of "together progress" 2021-04-08T18:04:36Z amirouche: hence, the "energy" around you, help to grow your skills. It is related to reading other people code. 2021-04-08T18:06:32Z tatsumaru: for example my abstract thinking capacity isn't that high and I am wondering if I push myself if it will grow or it just wasn't meant to be. 2021-04-08T18:06:54Z amirouche: destiny... 2021-04-08T18:07:10Z amirouche: rudybot: what do you think about destiny? 2021-04-08T18:07:11Z sm2n: tatsumaru, why do you say it isn't that high? what have you done? 2021-04-08T18:07:31Z rudybot: amirouche: I just think that at some point in time our species for some reason figured out how to shape it's own destiny by building tools right. Something is bound to happen that will give AI that spark and AI start building itself... I have no clue how it will happen however 2021-04-08T18:07:51Z tatsumaru: sm2n I have a pretty average IQ and when we play board games with my brother I usually struggle to process all the necessary information that I need to in order to make a good decision. 2021-04-08T18:08:26Z tatsumaru: the sort of thinking that you need to plan 1-2 moves ahead is particularly difficult to me. 2021-04-08T18:08:30Z sm2n: first of all, IQ is a statistically bunk measure 2021-04-08T18:08:35Z sm2n: do you play a lot? 2021-04-08T18:08:40Z tatsumaru: yes 2021-04-08T18:08:42Z amirouche: That may also be the IQ curse, or senior developer curse such as: "the more you know..." 2021-04-08T18:09:18Z amirouche: I never played one-two moves ahead in board games ^^' 2021-04-08T18:09:20Z sm2n: have you tried to actively get better at it? 2021-04-08T18:09:32Z tatsumaru: but i am also lazy which might be a bit of self-fulfilling prophecy. for example when it comes the time to think I kind of get scared to do it because I know I am somewhat slower at it, so I don't always push myself. 2021-04-08T18:09:37Z Core6645 joined #scheme 2021-04-08T18:09:38Z sm2n: like, put in effort into analysis outside of the game etc 2021-04-08T18:09:48Z amirouche: good question 2021-04-08T18:10:55Z sm2n: anyway, my advice if you are concerned about your capacity for abstract thinking is to do some math 2021-04-08T18:11:18Z abralek_ quit (Ping timeout: 240 seconds) 2021-04-08T18:11:25Z sm2n: particularly, everyone should study an intro to proof equivalent 2021-04-08T18:11:38Z tatsumaru: sm2n maybe I should but I feel like my brain rejects it, it's like if the difficulty is above level x it's like it blanks out 2021-04-08T18:11:52Z tatsumaru: maybe I just didn't push myself hard enough 2021-04-08T18:11:58Z sm2n: a lot of "abstract thinking" is just having the right analytical tools, and the confidence to use them 2021-04-08T18:13:15Z tatsumaru: a lot of writers and teachers say - if you try to improve qualities that you are not naturally good at, you will become mediocre at best, while others say there's no talent at all, what you push, becomes mastery over time, so I am wondering which theory is closer to the truth. 2021-04-08T18:13:44Z amirouche: AFAIK so called "smart" is a lot of work, and work is more complicated topic. I used to say, you do not know when you work, and when you work, you might not really work as in doing routine stuff that do not necessitate brain to function to some extent. 2021-04-08T18:13:45Z wasamasa: there is improvement over time 2021-04-08T18:13:58Z amirouche: +1 2021-04-08T18:14:06Z sm2n: writers and teachers that talk about that stuff are mostly grifters 2021-04-08T18:14:09Z amirouche: pushing yourself too hard is not good. 2021-04-08T18:14:09Z ChoHag: tatsumaru: Both. 2021-04-08T18:14:13Z wasamasa: you can't tell me that someone spending lots of time doing things deliberately doesn't get better 2021-04-08T18:14:25Z wasamasa: there are skill differences of course, but you can get to an interesting level 2021-04-08T18:14:28Z ChoHag: It's not just doing. 2021-04-08T18:14:32Z wasamasa: to one exceeding someone never having done a thing 2021-04-08T18:14:41Z amirouche: +1 2021-04-08T18:14:44Z ChoHag: You have to do, make mistakes, and learn to not make them. 2021-04-08T18:14:47Z wasamasa: yes 2021-04-08T18:14:58Z wasamasa: I've learned to be good enough at lots of things 2021-04-08T18:15:04Z wasamasa: there are some I struggle with a lot, sure 2021-04-08T18:15:13Z ChoHag: Some people cut their loop iterations short. 2021-04-08T18:15:19Z tatsumaru: could you be biased because you were a natural at logic/math/programming? 2021-04-08T18:15:41Z sm2n: sure, there is survivor bias 2021-04-08T18:15:44Z wasamasa: according to the tests I was both good at mathematics and language 2021-04-08T18:15:54Z ChoHag: Undoubtedly. 2021-04-08T18:16:10Z wasamasa: but despite that I've learned to get good at cooking, making plants grow, learning loads of useless trivia, ... 2021-04-08T18:16:21Z ChoHag: I can do plumbing. 2021-04-08T18:16:30Z ChoHag: I don't need to do plumbing, but I can now. 2021-04-08T18:16:37Z wasamasa: I've done talks about getting into daunting topics 2021-04-08T18:16:48Z wasamasa: I'm nowhere near world class obviously, but it makes for interesting conversation 2021-04-08T18:17:18Z wasamasa: it's easy to get discouraged when the top of the crop are visible at all times 2021-04-08T18:17:27Z amirouche: I end up the semester at 3/20 score after three years of struggle, in 1 month I reached 15/20 at the final exam. 2021-04-08T18:17:56Z sm2n: but anyway, basically everything in an undergrad STEM curriculum does not really require particularly great amounts of intelligence or creativity 2021-04-08T18:18:10Z ChoHag: The way I look at it, if you were going to succeed straight away, why are you bothering to learn? 2021-04-08T18:18:10Z wasamasa: the nice thing about programming vs artistic stuff was that the iterations with programming are a lot less punishing 2021-04-08T18:18:15Z sm2n: it is just a matter of maintaining focus during the grind 2021-04-08T18:18:18Z wasamasa: there's less ego involved when you look at shitty programs 2021-04-08T18:18:25Z ChoHag: wasamasa: Computer says no. 2021-04-08T18:18:26Z wasamasa: no need to buy new programming supplies for each attempt 2021-04-08T18:18:45Z wasamasa: nobody puts your program into a museum or tries to psychoanalyze your mood you had when doing it 2021-04-08T18:18:59Z ChoHag: You've never tried to debug someone else's code? 2021-04-08T18:19:08Z ChoHag: LOTS of psychoanalysing. 2021-04-08T18:19:16Z wasamasa: nah 2021-04-08T18:19:20Z wasamasa: that's just distraction 2021-04-08T18:19:25Z wasamasa: I hunt bugs for a living, lol 2021-04-08T18:19:36Z tatsumaru: ChoHag in my opinion it's not about whether you should learn or not, but rather if you should learn things that you don't have an aptitude for. one could argue that you would benefit the world far more if you were to focus on your strengths than to develop things which would take you 10x more time to become a master at. there's a huge opportunity cost. 2021-04-08T18:19:36Z wasamasa: I can try to get into someone's head, but it's far from essential 2021-04-08T18:19:37Z ChoHag: I find it helps to get a little into the developer's mindset, icky as it is. 2021-04-08T18:19:51Z wasamasa: observation and logic is more crucial 2021-04-08T18:19:59Z ChoHag: Well it depends how clean the code is. 2021-04-08T18:20:07Z wasamasa: I usually test the application, not the code 2021-04-08T18:20:10Z ChoHag: Well-written code can be read on its own merits. 2021-04-08T18:20:11Z amirouche: that is problem of choice, but forget about "inability to learn" imo 2021-04-08T18:20:17Z wasamasa: blackbox testing is an interesting challenge 2021-04-08T18:20:24Z wasamasa: but so is hunting bugs in source code 2021-04-08T18:20:36Z sm2n: blackbox testing is very useful skill 2021-04-08T18:20:50Z wasamasa: debugging why some fault happens is something I got gradually better at 2021-04-08T18:20:51Z sm2n: I use it to figure out what my own code is doing sometimes 2021-04-08T18:20:59Z skapata joined #scheme 2021-04-08T18:21:08Z ChoHag: You cannot tell if you have the aptitude for something until you're at least able to not D-K yourself, and I personally don't see how much my knowledge is going to benefit the world as a remotely useful metric. 2021-04-08T18:21:22Z wasamasa: D-K? 2021-04-08T18:21:25Z ChoHag: How is my new knowledge going to get the world to be more benefit to me? 2021-04-08T18:21:30Z ChoHag: Dunning-Kruger. 2021-04-08T18:21:32Z wasamasa: lol 2021-04-08T18:21:34Z amirouche: ChoHag: I try, I fail all the time.. 2021-04-08T18:21:49Z amirouche: ChoHag: the metric is github star obv. 2021-04-08T18:22:13Z wasamasa: lol 2021-04-08T18:22:16Z amirouche: and I retry all the time. 2021-04-08T18:22:21Z wasamasa: someone linked a stupidly named google project earlier 2021-04-08T18:22:24Z wasamasa: it had a few thousand stars 2021-04-08T18:22:40Z amirouche: it's google.. 2021-04-08T18:22:40Z Core6645 quit (Read error: Connection reset by peer) 2021-04-08T18:22:46Z abralek_ joined #scheme 2021-04-08T18:22:46Z wasamasa: exactly 2021-04-08T18:22:58Z amirouche: It was joke, I wil NEVER do that joke again. 2021-04-08T18:23:00Z wasamasa: if anyone else would call their project something mcsomeface, nobody would care 2021-04-08T18:23:09Z wasamasa: but google, whew 2021-04-08T18:23:11Z sm2n: oh the translator thing 2021-04-08T18:23:16Z wasamasa: yes 2021-04-08T18:23:20Z amirouche: no, the assertion thing. 2021-04-08T18:23:25Z amirouche: wuffl or something. 2021-04-08T18:23:37Z wasamasa: the name can be interpreted as woofs in german 2021-04-08T18:24:28Z sm2n: wasamasa, you do security stuff? 2021-04-08T18:24:30Z wasamasa: yes 2021-04-08T18:24:41Z sm2n: neat 2021-04-08T18:24:45Z sm2n: would you recommend it? 2021-04-08T18:24:59Z wasamasa: after having done software development professionally for five years, yes 2021-04-08T18:25:09Z wasamasa: so much less agile nonsense and nobody knows about hackernews 2021-04-08T18:25:24Z wasamasa: no worries about getting promoted into management 2021-04-08T18:25:30Z wasamasa: well, unless you want that 2021-04-08T18:25:32Z ChoHag: I did software development professionally for about 6 months. 2021-04-08T18:25:34Z wasamasa: and you are properly paid 2021-04-08T18:25:35Z amirouche: tatsumaru: btw, I think nobody here AFAIK, has the recipe for maximum wrap success or productivity. Some around may look like high profile programmers but they have their woes and tricks (I think about some popular github repos / users) 2021-04-08T18:25:39Z ChoHag: But I started hating it so I had to stop. 2021-04-08T18:25:54Z wasamasa: amirouche: yes, funnily enough people assume I'm a super productive emacs hacker worthy of donations 2021-04-08T18:26:01Z wasamasa: amirouche: I guess it's my marketing 2021-04-08T18:26:02Z ChoHag: Jesus that was nearly 20 years ago now. 2021-04-08T18:26:18Z wasamasa: sm2n: it has its own issues of course, but I like it 2021-04-08T18:26:27Z sm2n: I see 2021-04-08T18:26:36Z wasamasa: I no longer see it as dream job 2021-04-08T18:26:42Z sm2n: how do people typically get into it? 2021-04-08T18:26:58Z wasamasa: there's the obvious way and the drawn out way 2021-04-08T18:27:01Z amirouche: wasamasa: you have popular blogs. 2021-04-08T18:27:10Z ChoHag: wasamasa: How does one "do security"? 2021-04-08T18:27:24Z wasamasa: the obvious way is to study something with security and getting hired after graduating 2021-04-08T18:27:41Z ChoHag: (I "do security", but only as part of my dayjob (which I currently don't have)) 2021-04-08T18:27:46Z wasamasa: this used to be tricky because lack of good courses and companies typically expected certificates 2021-04-08T18:27:50Z wasamasa: but it's doable now 2021-04-08T18:28:03Z ChoHag: No not how does one learn it, what does "doing security for a job" entain? 2021-04-08T18:28:26Z wasamasa: the drawn out way is to do software development, systems administration or blackhat hacking, then turning towards security and getting hired for the breadth of experience 2021-04-08T18:28:38Z ChoHag: I ask from the position of a unix-beard sysadmin, not a noob. 2021-04-08T18:28:59Z wasamasa: I am officially a consultant and the job does actually involve dealing with customers and doing boring paperwork 2021-04-08T18:29:02Z ChoHag: Although I shaved yesterday. 2021-04-08T18:29:12Z sm2n: I see 2021-04-08T18:29:22Z wasamasa: the remaining time I look into software to test for security issues and poke at it from all kinds of directions 2021-04-08T18:29:44Z wasamasa: it's somewhere between traditional testing (having a checklist of things to try) and an art (observing carefully and trying out appropriate things) 2021-04-08T18:30:05Z ChoHag: A large part is looking for vulnerabilities in client software then? 2021-04-08T18:30:17Z wasamasa: I did a bit of community stuff on the side, like hunting bugs in FLOSS software and partaking in competitions, but I mostly stopped doing that as it ceded to be fun 2021-04-08T18:30:23Z wasamasa: for a penetration tester, yes 2021-04-08T18:30:29Z wasamasa: there are other security things you could do 2021-04-08T18:31:02Z wasamasa: like working at a SOC/SIEM handling security incidents, writing down lots of documentation about security guidelines, analysing malware, developing secure software, teaching people, ... 2021-04-08T18:31:13Z wasamasa: or in the best case, doing research 2021-04-08T18:31:33Z wasamasa: like studying something for the heck of it and doing a cool presentation about it 2021-04-08T18:31:51Z ChoHag: I guess what I'm saying is that I do all/most of these things myself to some extent but none of them is my focus, security work is "only" performed in light of the larger goal of running the system. 2021-04-08T18:31:53Z wasamasa: or looking out for new cyber crime emerging and cooperating with law enforcement to shut it down 2021-04-08T18:32:05Z ChoHag: So what is the focus? 2021-04-08T18:32:17Z wasamasa: for a system administrator, the most obvious thing would be to lock down infrastructure 2021-04-08T18:32:22Z wasamasa: blue teaming for example 2021-04-08T18:32:22Z ChoHag: ("only" in quotes because it's a huge chunk of it) 2021-04-08T18:32:28Z wasamasa: or becoming an expert at cloud security 2021-04-08T18:32:54Z wasamasa: you don't need much programming skill for that and your experience with managing diverse systems is invaluable for that 2021-04-08T18:33:07Z ChoHag: Heh I remember with one guy who wanted me to explain how I'd "hardened" my servers. 2021-04-08T18:33:22Z wasamasa: or doing network stuff 2021-04-08T18:33:27Z ChoHag: "Didn't install crud in the first place" didn't fly. It had to be an active process or removal/closing. 2021-04-08T18:33:31Z wasamasa: this would be the area I have most respect of 2021-04-08T18:33:56Z wasamasa: networks can become stupidly complicated and tricky to figure out 2021-04-08T18:34:21Z wasamasa: someone in charge of a network so large that they have plenty to do keeping it safe 2021-04-08T18:34:22Z ChoHag: And they shouldn't for exactly the same reasons code shouldn't. 2021-04-08T18:34:25Z wasamasa: that could be your ticket out 2021-04-08T18:34:41Z wasamasa: unfortunately it's nowhere near as visible as the attacking side 2021-04-08T18:34:48Z ChoHag: If you run a complex network, you don't. China & Russia are fighting for control of it. 2021-04-08T18:34:52Z wasamasa: :D 2021-04-08T18:35:54Z wasamasa: somewhat related to that, there's this long standing tradition of holding attack and defense CTFs 2021-04-08T18:36:03Z wasamasa: a successful team pretty much requires an oldschool administrator 2021-04-08T18:36:08Z ChoHag: Capture-the-flag? 2021-04-08T18:36:10Z wasamasa: yes 2021-04-08T18:36:15Z hendursaga joined #scheme 2021-04-08T18:36:22Z ChoHag: What's that? 2021-04-08T18:36:34Z ChoHag: I mean I know what CTF is. Not sure how it applies. 2021-04-08T18:36:40Z wasamasa: you collect digital flags 2021-04-08T18:37:06Z wasamasa: in this variation of it, you're in charge of a small network running vulnerable services that can leak their flag, a small piece of text 2021-04-08T18:37:26Z ChoHag: Ah I see. The playing board is a dodgy network. 2021-04-08T18:37:26Z wasamasa: so your job is to both attack the other teams services (for example by writing exploits exfiltrating the flag) and lock down your network 2021-04-08T18:37:58Z wasamasa: this is a timeboxed exercise with a scoreboard showing how well the teams do 2021-04-08T18:38:18Z wasamasa: the weirdest run of this involved the teams writing programs that play for them, autonomously 2021-04-08T18:38:33Z wasamasa: which resulted in a university team open sourcing a framework for automatic binary analysis 2021-04-08T18:39:15Z gravicappa quit (Ping timeout: 248 seconds) 2021-04-08T18:39:46Z wasamasa: there are other kinds of CTFs, but they're not nearly as exciting 2021-04-08T18:40:15Z wasamasa: maybe this could be your ticket out, who knows 2021-04-08T18:40:21Z ChoHag: Mine? 2021-04-08T18:40:32Z ChoHag: I've been out for 2 years. 2021-04-08T18:40:37Z wasamasa: oh 2021-04-08T18:40:53Z ChoHag: Blissfully unemployed. 2021-04-08T18:41:00Z wasamasa: I mean, into infosec 2021-04-08T18:41:20Z gravicappa joined #scheme 2021-04-08T18:41:31Z wasamasa: but then, it's not all roses and some people found it more fun to do this recreationally 2021-04-08T18:41:39Z ChoHag: Oh that. I can already milk it enough to flesh out my CV if I need to. 2021-04-08T18:42:07Z ChoHag: I was a consultant for over a decade so I've ended up with a wide range of "experience". 2021-04-08T18:42:26Z ChoHag: That is, exactly the same experience in very different political/social environments. 2021-04-08T18:42:34Z ChoHag: It looks good on paper though. 2021-04-08T18:43:36Z ChoHag: "You have exactly the same problem as the last 7 places I worked in. Shall we solve it the same way I did there?" "No! We are unique!" "OK. Kerching." 2021-04-08T19:02:25Z aeth_ joined #scheme 2021-04-08T19:02:28Z aeth quit (Disconnected by services) 2021-04-08T19:02:30Z aeth_ is now known as aeth 2021-04-08T19:03:29Z tatsumaru: wasamasa since you are a security expert, would you agree that the future of security is cryptography and not protecting data centers from intruders 2021-04-08T19:04:06Z wasamasa: uhhh 2021-04-08T19:04:19Z lritter quit (Ping timeout: 248 seconds) 2021-04-08T19:04:26Z wasamasa: there's this trend of system designers to just shovel everything into a big undocumented crypto chip, as if that would save them 2021-04-08T19:04:28Z wasamasa: but it doesn't 2021-04-08T19:04:41Z ChoHag: I wouldn't, personally. 2021-04-08T19:04:47Z wasamasa: the hackers tend to attack the weakest spots 2021-04-08T19:04:48Z ChoHag: Without physical security there is no security. 2021-04-08T19:04:58Z wasamasa: yeah 2021-04-08T19:06:21Z wasamasa: there are some cases where you have a really strange threat model 2021-04-08T19:06:22Z tatsumaru: I mean obviously if a meteor hit the earth and destroyed it, encryption wouldn't help, but to a certain degree isn't encryption and backup mostly enough to protect your data? with encryption you can either delete the stuff or ignore it. Maybe with quantum computing they will also decrypt certain algorithms tho. 2021-04-08T19:06:24Z wasamasa: like inside cars 2021-04-08T19:07:01Z wasamasa: and you'll have to settle for a reasonable solution instead of constantly improving it 2021-04-08T19:07:50Z wasamasa: if you can say what exactly your threat model is, your question might be easier to answer 2021-04-08T19:08:12Z ChoHag: tatsumaru: You can't meaningfully talk about this without first understanding your threat level/model. 2021-04-08T19:08:15Z wasamasa: exactly 2021-04-08T19:08:40Z tatsumaru: I suppose you are right, I tend to generalize which isn't helpful in these situations. 2021-04-08T19:08:40Z jobol quit (Quit: Leaving) 2021-04-08T19:08:45Z ChoHag: Like, is *your IT* surviving after a dinosaur-killing metor strike so relevant? 2021-04-08T19:08:45Z wasamasa: I wouldn't do any generalizations without nailing down what exactly you protect, who your enemies are, what skill they have and what reasonable budget/measures would be 2021-04-08T19:09:02Z wasamasa: figure that out and you got yourself a threat model 2021-04-08T19:09:22Z ChoHag: Medical devices are a good example. 2021-04-08T19:09:36Z sm2n: I mean, cryptography is not a panacea 2021-04-08T19:09:41Z ChoHag: Pacemakers run bluetooth because everything's better with bluetooth (also doctors can apply updates). 2021-04-08T19:09:56Z ChoHag: Horribly insecure, but who is going to attack your pacemaker with a custom bluetooth exploit? 2021-04-08T19:10:04Z wasamasa: yeah 2021-04-08T19:10:05Z sm2n: if you want full trustless computations, you need homomorphic encryption, but that is very enefficient 2021-04-08T19:10:08Z wasamasa: you need physical proximity 2021-04-08T19:10:15Z wasamasa: jamming bluetooth is hard 2021-04-08T19:10:24Z sm2n: inefficient 2021-04-08T19:10:34Z wasamasa: you're likelier to try locking out people from customizing their own pacemakers 2021-04-08T19:10:41Z wasamasa: there's a talk about the topic 2021-04-08T19:10:48Z wasamasa: FLOSS and pacemakers 2021-04-08T19:10:59Z tatsumaru: ChoHag I was wondering if one day when we start doing more and more cybernetic implants, if it would be wise to write non-portable software as as security measure in something like assembly for example. 2021-04-08T19:11:25Z wasamasa: lol 2021-04-08T19:11:26Z sm2n: people can read assembly fine 2021-04-08T19:11:35Z ChoHag: I would not allow any cybernetic implants if they were written by, or written by code written by, developers. 2021-04-08T19:11:40Z wasamasa: what do you think people stare at when dissecting malware? 2021-04-08T19:11:43Z sm2n: this sounds about right 2021-04-08T19:11:50Z wasamasa: not lisp code 2021-04-08T19:12:30Z sm2n: tatsumaru, I would suggest trying out a lot of different things in programming, if you are interested in the field 2021-04-08T19:12:50Z wasamasa: tatsumaru: I remember this fun paper suggesting a security strategy you could enjoy 2021-04-08T19:12:53Z sm2n: it is quite easy to pick up an introductory level of proficiency in many things 2021-04-08T19:12:55Z tatsumaru: yeah but for example it's really hard to write your own driver for your GPU because of needing specific hardware info only the manfucaturer has. 2021-04-08T19:13:13Z tatsumaru: and reverse engineering takes a ton of time. 2021-04-08T19:13:20Z sm2n: that is because nvidia signs their firmware 2021-04-08T19:13:31Z sm2n: and it's not practical to do hardware mods 2021-04-08T19:13:49Z sm2n: but people do hardware mods on stuff like consoles all the time 2021-04-08T19:13:54Z sm2n: and they come out pretty fast 2021-04-08T19:14:01Z wasamasa: tatsumaru: that paper suggested an OS that detects when someone tries to hack it and randomizes its behavior immediately to make automatic exploitation close to impossible 2021-04-08T19:14:09Z wasamasa: tatsumaru: kind of like an immune system 2021-04-08T19:14:17Z tatsumaru: lol, is this OS usable? 2021-04-08T19:14:28Z sm2n: how would that even work 2021-04-08T19:14:41Z wasamasa: it was some custom hardware 2021-04-08T19:14:41Z wasamasa: I don't remember the details 2021-04-08T19:15:45Z wasamasa: looking it up could be tricky 2021-04-08T19:15:58Z wasamasa: but it specifically fended of binary exploitation 2021-04-08T19:16:04Z wasamasa: like someone trying to bruteforce a stack canary 2021-04-08T19:16:11Z wasamasa: and then it would just change it before they succeed 2021-04-08T19:16:26Z wasamasa: they claimed only 30% slowdown in that mode of operation 2021-04-08T19:16:43Z sm2n: on the contrary though, if I was to get a cybernetic implant, I would want it to be written in an understandable, auditable, language, ideally with formal verification, with a foss stack 2021-04-08T19:16:48Z sm2n: neat 2021-04-08T19:17:17Z sm2n: well, I guess that is sort of how the rowhammer software mitigations work 2021-04-08T19:17:35Z tatsumaru: definitely, no proprietary stuff 2021-04-08T19:18:43Z tatsumaru: so not getting neuralink I guess? 2021-04-08T19:18:47Z wasamasa: I remember finding the paper on lobsters though 2021-04-08T19:19:30Z sm2n: almost certainly not 2021-04-08T19:20:12Z sm2n: you would have to be incredibly stupid to trust the person who sell's drm'd cars to modify your organs 2021-04-08T19:20:17Z wasamasa: yes 2021-04-08T19:25:29Z tatsumaru: I often wonder if all embedded software should be libre and the whole business value be generated from the actual hardware innovation 2021-04-08T19:26:40Z tatsumaru: what's the point of making the software proprietary, are you really going to build your own battery and car gigafactories if you can read and tweak the tesla software freely 2021-04-08T19:27:35Z Zipheir: No, but they can restrict the car's range arbitrarily. 2021-04-08T19:27:37Z sm2n: tesla makes money off their battery drm 2021-04-08T19:27:53Z sm2n: you only get 60% capacity or something by default 2021-04-08T19:28:04Z tatsumaru: is that a fact or a rumor? 2021-04-08T19:28:05Z sm2n: have to pay extra for a software update to unlock the rest :D 2021-04-08T19:28:11Z sm2n: I can find a source, one sec 2021-04-08T19:28:31Z sm2n: https://www.theverge.com/2016/5/5/11597508/tesla-model-s-70-battery-upgrade-pay-unlock-battery 2021-04-08T19:28:35Z sm2n: ok, not 60% 2021-04-08T19:29:02Z sm2n: ""All 70 kWh Model S with updated styling have been built with a 75 kWh battery pack and the additional energy can be unlocked at anytime through an over-the-air software update," said a Tesla spokesperson in a statement given to The Verge. "We will continue to offer the 70 kWh energy option at but we will no longer produce the packs; a decision that is the most efficient for Tesla and the most beneficial for our 2021-04-08T19:29:02Z sm2n: customers."" 2021-04-08T19:29:13Z tatsumaru: why you have to undermine my respect for my favorite person this way... 2021-04-08T19:30:06Z badkins quit (Remote host closed the connection) 2021-04-08T19:30:36Z badkins joined #scheme 2021-04-08T19:31:09Z Zipheir: Elon? I hope people have other favorite people... 2021-04-08T19:32:02Z tatsumaru: I think Elon is great in many regards. I don't agree with everything he does, but he's certainly inspired me a lot to become a systems thinker and contemplate the value of vertical integration. 2021-04-08T19:32:54Z sm2n: why respect elon musk when you can respect oleg kiselyov 2021-04-08T19:32:58Z tatsumaru: I generally tend to like inventors more than pure theorists. 2021-04-08T19:33:03Z wasamasa: Oleg FTW 2021-04-08T19:33:09Z tatsumaru: I have to check who Oleg is. 2021-04-08T19:33:53Z X-Scale: Also how to ruin earth based astronomy with 42 thousand LEO satellite constellation 101 2021-04-08T19:34:17Z tatsumaru: X-Scale, from what I read the concerns about starlink are unfounded and this has been debunked already. 2021-04-08T19:34:41Z sm2n: do you have a source on that? 2021-04-08T19:35:20Z badkins quit (Ping timeout: 246 seconds) 2021-04-08T19:35:27Z Zipheir: It seems pretty hard to find an astronomer saying positive things about Starlink. 2021-04-08T19:35:33Z sm2n: I lean towards supporting it though, because I think competition for internet is probably more useful than earth-based astronomy 2021-04-08T19:36:50Z X-Scale: tatsumaru: with only around 1300 satellites deployed and the night sky already looks like this. Imagine it when you'll have 42 thousand of them. -> https://en.wikipedia.org/wiki/Starlink#/media/File:Astro.jpg 2021-04-08T19:39:02Z tatsumaru: from a purely scientific point of view this is irrelevant because earth based astronomy is mostly a dead end anyway. however if you are right this could be shitty for amateur astronomers who just want to do some stargazing 2021-04-08T19:39:49Z Zipheir: tatsumaru: Do you do astronomy? 2021-04-08T19:40:50Z tatsumaru: not really, I just know that everything that can be seen from the earth is already seen, so I doubt this isn't hurting science per se. 2021-04-08T19:40:58Z tatsumaru: this is* 2021-04-08T19:41:06Z Zipheir: tatsumaru: You might ask an astronomer about how this impacts them, then. 2021-04-08T19:41:40Z jeko joined #scheme 2021-04-08T19:41:57Z tatsumaru: plus same can be said about light pollution as well. 2021-04-08T19:42:16Z Zipheir: I'd like the decisions that dramatically affect something like that to be made by international communities, not a single private US organization. 2021-04-08T19:42:18Z tatsumaru: maybe you've seen how the sky looks like without light pollution, it's gorgeous. 2021-04-08T19:43:05Z Zipheir: Yes. 2021-04-08T19:43:12Z badkins joined #scheme 2021-04-08T19:43:22Z sm2n: Zipheir, it's not a single private organization, there are at least 3 :D 2021-04-08T19:43:34Z Zipheir: Well, there's that. 2021-04-08T19:43:54Z tatsumaru: personally I don't think Elon's acting in bad faith, although some of his ideas are not great. I am particularly concerned about neuralink. 2021-04-08T19:43:55Z sm2n: but they all did it independently so it's worse 2021-04-08T19:43:56Z Zipheir: "The world is a college of corporations, Mr. Beale." (Network) 2021-04-08T19:45:00Z sm2n: whatever Musk is more or less a distraction from the actual problems we have as a planet 2021-04-08T19:45:08Z sm2n: which is probably why he is so popular 2021-04-08T19:45:14Z sm2n: *whatever Musk does 2021-04-08T19:45:36Z tatsumaru: sm2n how is sustainable energy not a problem? 2021-04-08T19:46:11Z tatsumaru: or air pollution 2021-04-08T19:46:38Z sm2n: I assume you are talking about tesla 2021-04-08T19:46:44Z sm2n: it is half-baked 2021-04-08T19:47:08Z sm2n: building more cars is not going to solve the climate crisis 2021-04-08T19:47:18Z johnjay quit (Ping timeout: 240 seconds) 2021-04-08T19:47:26Z sm2n: the most you could say is that the innovation in battery tech may be useful 2021-04-08T19:47:41Z sm2n: but even then, that does not really help solve the problem 2021-04-08T19:47:50Z sm2n: the problem is that we use too much energy 2021-04-08T19:48:20Z amirouche: +1 2021-04-08T19:48:24Z tatsumaru: no, the problem is that we use energy too inefficiently 2021-04-08T19:48:35Z amirouche: +1 too 2021-04-08T19:48:43Z sm2n: sure, and cars are not efficient 2021-04-08T19:48:47Z ChoHag: Inefficiencies are where development is made possible. 2021-04-08T19:48:48Z amirouche: but in the meantime, we should reduce energy consumption 2021-04-08T19:48:53Z sm2n: whether they are electric or not 2021-04-08T19:48:54Z tatsumaru: true, but going back to paleo times can't be the answer to everything 2021-04-08T19:48:57Z amirouche: sure car are not efficient. 2021-04-08T19:49:03Z sm2n: I don't think I ever said that 2021-04-08T19:49:19Z amirouche: tatsumaru: that is the argument of everybody against reducing energy use. 2021-04-08T19:49:43Z amirouche: urban transit is better than cars. 2021-04-08T19:49:43Z sm2n: cars are not the only way to transport people 2021-04-08T19:50:12Z amirouche: reducing != going rock and wood ^^' 2021-04-08T19:50:27Z johnjay joined #scheme 2021-04-08T19:50:52Z tatsumaru: sure and teleportation is liekly even better than cars, but evolution isn't compatible with perfection. 2021-04-08T19:50:57Z tatsumaru: likely* 2021-04-08T19:51:17Z aeth quit (Ping timeout: 252 seconds) 2021-04-08T19:51:42Z Zipheir: I think there are other options on the walking -- driving -- teleporting spectrum. :) 2021-04-08T19:51:55Z sm2n: that's not much of an argument... at any rate, if you do your research you will find cars are just not sustainable 2021-04-08T19:52:05Z gproto023 joined #scheme 2021-04-08T19:52:16Z sm2n: tesla's are luxury goods, and half of the luxury is their reputation from this kind of propaganda 2021-04-08T19:52:22Z tatsumaru: i personally don't even have a car or a driver's license and think that most people don't need cars 2021-04-08T19:52:32Z ChoHag: I need a car. 2021-04-08T19:52:47Z ChoHag: I don't want to drag that much wine back all the time on foot. 2021-04-08T19:52:51Z tatsumaru: sm2n tesla != apple 2021-04-08T19:53:13Z aeth joined #scheme 2021-04-08T19:53:24Z tatsumaru: ChoHag, do you have a winery lol 2021-04-08T19:53:31Z sm2n: actually tesla : cars :: apple : computers is a pretty decent analogy I think 2021-04-08T19:54:28Z tatsumaru: completely disagree, apple has created zero value for society. 2021-04-08T19:54:29Z ChoHag: I don't need the car sitting in the driveway for the 98% of the time I don't use it, but I do want it to be there ready when I stroll out unplanned to use it. 2021-04-08T19:54:55Z tatsumaru: ChoHag tesla solves that. 2021-04-08T19:55:02Z gproto023 quit (Client Quit) 2021-04-08T19:55:29Z X-Scale: car travels as a service 2021-04-08T19:55:35Z X-Scale: no need to own a car 2021-04-08T19:55:59Z tatsumaru: X-Scale, I mostly agree. 2021-04-08T19:56:03Z ChoHag: Self-driving cars are a pipe-dream. 2021-04-08T19:57:03Z ChoHag: Or we could build rails instead of roads, then the problem's already solved. 2021-04-08T19:58:13Z X-Scale: If anything this pandemic showed that a lot of bodies actually don't need to be moved around on a daily basis, only bits through the internet. 2021-04-08T19:58:40Z ChoHag: You will GOD DAMN ENTER the information age. 2021-04-08T19:58:53Z X-Scale: haha...exactly ! 2021-04-08T19:59:01Z tatsumaru: True. For the last 10 years I've been declining job opportunities if the office was more than 30 mins by public transport and required me to own a car. 2021-04-08T19:59:21Z tatsumaru: Never really had a problem because of that. 2021-04-08T19:59:46Z tatsumaru: Most people have cars out of desperation or for vanity reasons. 2021-04-08T19:59:53Z ChoHag: About 4/5 years ago I'd completed an interview and the manager tentatively asked me "would you be OK with working from home?" 2021-04-08T20:00:23Z ChoHag: Duh... 2021-04-08T20:01:32Z ChoHag: It's another silver lining from this madness - "but I can do it online" IS now a valid excuse. 2021-04-08T20:04:08Z sm2n: anyway 2021-04-08T20:04:15Z amirouche: X-Scale: exactly! 2021-04-08T20:04:17Z sm2n: what's everyone been scheming lately 2021-04-08T20:04:37Z dTal: Playing with libfive again 2021-04-08T20:04:38Z sm2n: I've been playing with pollen in racket, it is quite nice 2021-04-08T20:04:45Z Zipheir: SRFI 224. (Please review it!) 2021-04-08T20:05:06Z amirouche: my search engine Babelia! That involves writing yet-another-scheme-to-javascript compiler (a project of mine from two years that I rebooted) 2021-04-08T20:05:40Z dTal: Although they seem to have added Python bindings, which - while nice I'm sure - makes me irrationally less interested in it 2021-04-08T20:05:51Z amirouche: oh no 2021-04-08T20:06:24Z ChoHag: I'm trying to write enough of scheme to make a test suite so that I can weed the bug out of my implementation, but the implementation has bugs that I need to weed out to make the test suite. 2021-04-08T20:09:49Z sm2n: lol good luck 2021-04-08T20:10:14Z sm2n: amirouche, how is that going? 2021-04-08T20:11:31Z amirouche: sm2n: I think I will give up on the macros and the module system and focus on delivring ie. I will try to ship the app, but not the compiler. 2021-04-08T20:11:44Z amirouche: Mean the compiler will be a toy. 2021-04-08T20:11:53Z ChoHag: Zipheir: Half way through the first paragraph, first thoughts: how is this different from an array/hashmap? Will continue reading... 2021-04-08T20:12:01Z sm2n: doesn't gambit have a js backend? 2021-04-08T20:12:19Z amirouche: sm2n: I fear that it will blow.. I need a stable release. 2021-04-08T20:12:48Z amirouche: At least with my small scheme, I can fix things myself. 2021-04-08T20:14:57Z gravicappa quit (Ping timeout: 265 seconds) 2021-04-08T20:15:04Z sm2n: I mean you can pin the version you want... 2021-04-08T20:15:14Z ChoHag: amirouche: Modulo bugs, I pretty much have macros in <~3k lines of C. 2021-04-08T20:15:39Z phillbush quit (Quit: Leaving) 2021-04-08T20:15:45Z amirouche: sm2n: idk.. 2021-04-08T20:15:46Z ChoHag: I ended up getting quasiquotation to work, then I realised I didn't need it for the macro I was trying to write. 2021-04-08T20:15:48Z amirouche: ChoHag: great. 2021-04-08T20:18:23Z ChoHag: What sort of backend/compiler are you using? 2021-04-08T20:18:52Z Zipheir: ChoHag: Check out the Rationale section. 2021-04-08T20:19:10Z tatsumaru: Zipheir sorry for bringing non-scheme discussions to the scheme channel, I recall you disliking it, I will restrain myself. 2021-04-08T20:19:58Z amirouche: ChoHag: it is trampoline... I going to bed. 2021-04-08T20:20:15Z Zipheir: tatsumaru: I'm not annoyed at all. If everyone's enjoying themselves and it's not disrupting Scheme talk, I'm happy. 2021-04-08T20:23:48Z ChoHag: Zipheir: Still at the top, but is the point of the integer mapping and dependence on Maybe/Either that the mapping might have holes and/or conflicts? 2021-04-08T20:25:26Z Zipheir: ChoHag: Well, mappings are partial functions, so you need some way(s) to handle failure. 2021-04-08T20:26:15Z Zipheir: They're used in more subtle ways, as well, e.g. in imapping-unfold-maybe and imapping-alter. 2021-04-08T20:27:15Z marusich joined #scheme 2021-04-08T20:29:08Z badkins quit (Remote host closed the connection) 2021-04-08T20:29:48Z badkins joined #scheme 2021-04-08T20:32:59Z tatsumaru quit (Quit: Leaving.) 2021-04-08T20:36:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-08T20:36:49Z tatsumaru joined #scheme 2021-04-08T20:37:51Z tatsumaru: which scheme would be great for building a tiny web app with minimal functionality that aims to be fast and offer easy content management. something like a non-profit organization website with some articles. and beautiful but minimal design without any animations or fancy ux/ui etc. 2021-04-08T20:38:32Z tatsumaru: i decided to launch a hobby project as a test case for something like that. 2021-04-08T20:38:54Z tatsumaru: and using wordpress for something like that would be overkill 2021-04-08T20:39:02Z tatsumaru: plus i hate php 2021-04-08T20:42:38Z perdent quit (Ping timeout: 240 seconds) 2021-04-08T20:43:03Z wasamasa: well... 2021-04-08T20:43:10Z wasamasa: I suspect there isn't really one 2021-04-08T20:43:17Z wasamasa: unless you love building web frameworks from scratch 2021-04-08T20:43:24Z dieggsy: tatsumaru: i host my own website with chicken and spiffy, works fine for me 2021-04-08T20:43:26Z wasamasa: it can be fun, admittedly 2021-04-08T20:43:33Z wasamasa: people used racket for that 2021-04-08T20:43:45Z wasamasa: chibi has been used for it, but so slow 2021-04-08T20:44:12Z tatsumaru: dieggsy can I see your website 2021-04-08T20:45:00Z dieggsy: tatsumaru: lmao, it's not that nice, but keep on mind I'm just using a web server and my own (or org-generated html). it's not a web app my any means, depending on what you mean by that. 2021-04-08T20:45:15Z dieggsy: tatsumaru: https://dieggsy.com 2021-04-08T20:45:16Z wasamasa: my last web app: https://depp.brause.cc/brause.cc/wald/ 2021-04-08T20:45:27Z dieggsy: I'm also a pretty shit web dev jaja 2021-04-08T20:45:28Z wasamasa: the web app bits: https://depp.brause.cc/brause.cc/wald/wald.scm 2021-04-08T20:46:17Z wasamasa: hm, maybe I should log slow queries 2021-04-08T20:46:42Z jeko quit (Quit: jeko) 2021-04-08T20:47:15Z dieggsy: tatsumaru: but i think the idea is to build on something basic that works in the first place, so I'd probably choose racket or chicken tbh 2021-04-08T20:47:24Z wasamasa: it's such a common thing in web frameworks, but here I need to do it myself 2021-04-08T20:48:00Z tatsumaru: dieggsy i am looking to build a javascript-free design 2021-04-08T20:48:17Z tatsumaru: so probably chicken would do from the looks of it 2021-04-08T20:48:39Z wasamasa: but consider someone wrote a whole book on using racket for that 2021-04-08T20:49:02Z wasamasa: https://serverracket.com/courses/server-racket 2021-04-08T20:49:02Z tatsumaru: racket for web dev? 2021-04-08T20:49:06Z dieggsy: tatsumaru: i mean. sure. there's no JS on my website. but at that point that's just "serving html and css files using some web server". again, it depends what you mean by web app 2021-04-08T20:49:34Z wasamasa: it's a nice list of what I'd need to implement in CHICKEN 2021-04-08T20:49:45Z tatsumaru: dieggsy i guess web app was a stupid term to use, I am mostly going for something like stallman.org but with some css to make it look zen, not broken 2021-04-08T20:50:00Z wasamasa: does it need to be dynamic? 2021-04-08T20:50:05Z tatsumaru: no 2021-04-08T20:50:06Z wasamasa: do you know RMS hand edits the HTML? 2021-04-08T20:50:22Z dieggsy: tatsumaru: in that case, yeah that's essentially what I'm doing, but I'm not great at CSS hence whatever my website is 2021-04-08T20:50:34Z wasamasa: gopher/gemini are similar in style 2021-04-08T20:51:02Z dieggsy: with spiffy it's not /hard/ though is my point. idk how scalable it is if you care about that sort of thing lol 2021-04-08T20:51:15Z wasamasa: hide it behind nginx if you suspect it might get hit hard 2021-04-08T20:51:20Z wasamasa: but it does fine 2021-04-08T20:52:03Z wasamasa: I like using hyde for static site generation 2021-04-08T20:52:12Z wasamasa: but any static site generator in a scheme you like will do 2021-04-08T20:52:49Z wasamasa: like haunt for guile or frog for racket or hyde for CHICKEN 2021-04-08T20:53:26Z tatsumaru: interesting 2021-04-08T20:53:50Z wasamasa: here's my blog generated from that: https://emacsninja.com/ 2021-04-08T20:54:12Z wasamasa: source: https://depp.brause.cc/emacsninja.com/ 2021-04-08T20:54:20Z tatsumaru: looks quite nice actually 2021-04-08T20:54:34Z wasamasa: it's not limited to blogs, for example there's a company website built using hyde 2021-04-08T20:54:48Z tatsumaru: is it js-fre? 2021-04-08T20:54:50Z tatsumaru: free* 2021-04-08T20:54:53Z wasamasa: yes 2021-04-08T20:55:03Z wasamasa: it's fully static and served by nginx 2021-04-08T20:55:13Z wasamasa: you can put it on the cheapest kind of host 2021-04-08T20:55:46Z tatsumaru: does the actual scheme implementation I choose affect site speed significantly? 2021-04-08T20:55:53Z wasamasa: https://dthompson.us/projects/haunt.html 2021-04-08T20:56:02Z wasamasa: for a dynamic site, yes 2021-04-08T20:56:07Z wasamasa: but for a statically generated site, no 2021-04-08T20:56:26Z wasamasa: as the site is generated once and served with any web server you like 2021-04-08T20:56:27Z tatsumaru: alright that ghost icon won me over, I am doing it with guile 2021-04-08T20:56:33Z wasamasa: haha 2021-04-08T20:56:55Z wasamasa: for fairness sake, https://github.com/greghendershott/frog and http://wiki.call-cc.org/eggref/5/hyde 2021-04-08T20:56:59Z wasamasa: there's probably more 2021-04-08T20:57:23Z badkins joined #scheme 2021-04-08T20:57:45Z badkins quit (Remote host closed the connection) 2021-04-08T20:57:45Z wasamasa: expect some initial pain when trying to understand how to customize it, might require to use guile 2021-04-08T20:57:52Z tatsumaru: chicken is the most popular scheme right? 2021-04-08T20:57:57Z wasamasa: nah, racket 2021-04-08T20:58:08Z wasamasa: but those three are reasonably popular 2021-04-08T20:58:23Z badkins joined #scheme 2021-04-08T20:58:33Z perdent joined #scheme 2021-04-08T21:00:44Z dieggsy: wasamasa: good point. my website is in absolutely no such danger lol 2021-04-08T21:01:05Z wasamasa: my servers do get hit by weird stuff sometimes 2021-04-08T21:01:13Z wasamasa: like people scanning them for vulnerabilities for days 2021-04-08T21:01:29Z wasamasa: it seems so stupid when most of the content is static 2021-04-08T21:01:39Z tatsumaru: it's probably brute force 2021-04-08T21:01:47Z wasamasa: of course 2021-04-08T21:02:02Z wasamasa: I'm just missing someone being like, actually smart about it 2021-04-08T21:02:10Z wasamasa: seems to be 100% automated 2021-04-08T21:02:15Z dieggsy: tatsumaru: if i had to guess it's probably racket then guile then ?? chicken maybe 2021-04-08T21:02:22Z dieggsy: popularity i mean 2021-04-08T21:02:24Z tatsumaru: maybe cloudflare colud help? 2021-04-08T21:02:29Z wasamasa: nah, no need 2021-04-08T21:02:37Z wasamasa: cloudflare just makes things worse for everyone 2021-04-08T21:02:42Z dieggsy: that's true 2021-04-08T21:02:54Z tatsumaru: hmm, didn't know that 2021-04-08T21:02:57Z wasamasa: the only time I had an actual problem was when a SSH honeypot brought the machine down 2021-04-08T21:03:17Z dieggsy: i use cloud flare but i don't actually use it lol, they're just a dns server 2021-04-08T21:03:22Z wasamasa: I then replaced it by a proper and resource efficient SSH honeypot 2021-04-08T21:03:36Z tatsumaru: are all CDNs stupid as a concept? 2021-04-08T21:03:40Z dieggsy: some of my domains are though them too because they're cheap 2021-04-08T21:04:09Z wasamasa: for hobbyists like us, perhaps 2021-04-08T21:04:19Z dieggsy: tatsumaru: I'd say not as a concept but cloudflare likes to get in the way of basic http interactions in weird ways 2021-04-08T21:04:23Z wasamasa: yup 2021-04-08T21:04:24Z dieggsy: depending on how it's set up and used 2021-04-08T21:04:30Z wasamasa: it makes it hell for tor users 2021-04-08T21:04:43Z wasamasa: you contribute to internet centralization 2021-04-08T21:04:45Z dieggsy: programs, too 2021-04-08T21:04:45Z badkins quit (Ping timeout: 260 seconds) 2021-04-08T21:05:00Z wasamasa: it decreases overall lack of skill if you just let someone else solve problems you might not even have 2021-04-08T21:05:18Z wasamasa: and sometimes they fail hard 2021-04-08T21:05:25Z wasamasa: and you notice because so much stuff depends on it 2021-04-08T21:06:03Z wasamasa: you can argue there's a moral issue with supporting them on their mission of tunneling all internet traffic 2021-04-08T21:06:27Z wasamasa: because then they become an attractive target for other actors interested in inspecting that traffic 2021-04-08T21:09:26Z tatsumaru: well yeah but if they go down you can just change your DNS to your web hosting and your website would still work so it won't be a catastrophic failure of the web 2021-04-08T21:09:58Z tatsumaru: although it could cause some nasty downtime 2021-04-08T21:10:02Z wasamasa: yes, it does 2021-04-08T21:10:09Z wasamasa: and I'm not sure you can work around it this easily 2021-04-08T21:10:18Z wasamasa: some websites use cloudflare to hide their actual location 2021-04-08T21:10:32Z wasamasa: which is advertised as a feature against DDoS 2021-04-08T21:10:39Z nckx quit (Quit: Updating my Guix System — https://guix.gnu.org) 2021-04-08T21:10:58Z wasamasa: so the resolved target is actually a cloudflare machine proxying towards the real machine 2021-04-08T21:11:15Z wasamasa: doesn't matter what DNS server you use in that scenario 2021-04-08T21:22:35Z nckx joined #scheme 2021-04-08T21:23:15Z raingloom joined #scheme 2021-04-08T21:30:26Z Zipheir: ChoHag: Since you've looked at 224, what's your opinion on moving the Maybe/Either-using forms to an optional library? 2021-04-08T21:31:39Z Zipheir: Some Schemers get very irritated when Maybe/Either come up, so I'm hoping that some kind of common ground solution can be found. 2021-04-08T21:48:35Z rgherdt quit (Ping timeout: 248 seconds) 2021-04-08T21:50:34Z jcowan: tatsumaru: I have parlayed my non-abstract mind into a 40-year career as a programmer. 2021-04-08T21:58:32Z sxmx quit (Quit: WeeChat 3.1) 2021-04-08T21:59:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-08T21:59:44Z torbo joined #scheme 2021-04-08T22:00:45Z hendursaga joined #scheme 2021-04-08T22:03:15Z sxmx joined #scheme 2021-04-08T22:06:26Z Pixel_Outlaw quit (Quit: ERC (IRC client for Emacs 26.3)) 2021-04-08T22:13:20Z gnomon joined #scheme 2021-04-08T22:21:18Z cantstanya quit (Remote host closed the connection) 2021-04-08T22:26:27Z cantstanya joined #scheme 2021-04-08T22:27:47Z s-video quit (Ping timeout: 250 seconds) 2021-04-08T22:28:15Z civodul quit (Ping timeout: 260 seconds) 2021-04-08T22:28:18Z s-video joined #scheme 2021-04-08T22:28:47Z hyiltiz quit (Ping timeout: 268 seconds) 2021-04-08T22:32:10Z hyiltiz joined #scheme 2021-04-08T22:32:11Z hyiltiz quit (Changing host) 2021-04-08T22:32:11Z hyiltiz joined #scheme 2021-04-08T22:33:06Z marusich quit (Ping timeout: 268 seconds) 2021-04-08T22:39:31Z dieggsy: Zipheir: is maybe like Some/None in ML ? 2021-04-08T22:40:17Z dieggsy: do you guys understand this pseudocode? https://en.wikipedia.org/wiki/Miller%E2%80%93Rabin_primality_test#Miller%E2%80%93Rabin_test i'm having a hard time seeing when it will reach `return "probably prime"` 2021-04-08T22:41:35Z dieggsy: ...oh, i guess if it continues and it's after the k'th iteration ? 2021-04-08T22:47:54Z jcowan: That's the idea: each iteration makes compositeness less likely. 2021-04-08T22:49:38Z jcowan: dieggsy: It would probably be easier to read the https://github.com/shirok/Gauche/blob/master/lib/math/prime.scm library 2021-04-08T22:50:01Z tatsumaru quit (Quit: Leaving.) 2021-04-08T22:51:00Z dieggsy: jcowan: oh cool 2021-04-08T22:51:14Z jcowan: it contains a variety of prime generators and testers 2021-04-08T22:51:44Z dieggsy: lovely 2021-04-08T22:52:39Z jcowan: the interface is documented at http://practical-scheme.net/gauche/man/gauche-refe/Prime-numbers.html#Prime-numbers 2021-04-08T22:53:33Z dieggsy: very cool. thanks for that 2021-04-08T23:01:03Z badkins joined #scheme 2021-04-08T23:02:25Z aeth_ joined #scheme 2021-04-08T23:02:28Z aeth quit (Disconnected by services) 2021-04-08T23:02:41Z aeth_ is now known as aeth 2021-04-08T23:03:52Z wasamasa: gauche is quite cool 2021-04-08T23:05:37Z badkins quit (Ping timeout: 260 seconds) 2021-04-08T23:13:04Z Zipheir: dieggsy: Yup. Although Scheme Maybes can be multi-value. https://srfi.schemers.org/srfi-189/srfi-189.html 2021-04-08T23:13:57Z dieggsy: heh, how easy is it to combine this with matchable for an extra ML-esque scheme experience 2021-04-08T23:14:25Z dieggsy: (forgive me, i've just started programming in ocaml this week so that's sort of where my brain is lol) 2021-04-08T23:14:46Z Zipheir: Not portably, because records can't be matched portably. 2021-04-08T23:16:20Z Zipheir: Extending SRFI 204 (i.e. matchable) pattern-matching to new types is something I'd like to be able to do. 2021-04-08T23:25:34Z dieggsy: would definitely be cool 2021-04-08T23:27:43Z Zipheir: If someone defines a new type Foo and exports it, only being able to match its record/vector representation is a massive abstraction leak. 2021-04-08T23:28:18Z dieggsy: jcowan: in the wikipedia page does the 'repeated squaring' refer to turning n into the form 2^r*d + 1 ? 2021-04-08T23:32:24Z jcowan: dieggsy: Yes 2021-04-08T23:38:02Z jcowan: Zipheir: Look at https://gitlab.haskell.org/ghc/ghc/-/wikis/view-patterns which make the leak only local and temporary (call an ordinary function, match on what it returns) 2021-04-08T23:38:53Z Zipheir: jcowan: Nice resource. 2021-04-08T23:39:21Z jcowan: Since matching against a procedure doesn't make any real sense, such a case can be treated as a view procedure 2021-04-08T23:40:15Z Zipheir: I've been meaning to read Wadler's paper on views for a while. I'll do that before complaining further. 2021-04-08T23:43:41Z Zipheir: SRFI 204: "A future SRFI will specify a method similar to this one using the pattern operators -> and => to set up views on data." 2021-04-08T23:43:44Z Zipheir: LGTM. 2021-04-08T23:48:23Z dieggsy: jcowan: lol, that particular step (n - 1) = 2^r*d is entirely obscured in every miller-rabin explanation i see 2021-04-08T23:48:37Z dieggsy: maybe it's supposed to be apparent to me how to do that. alas, it's not lol 2021-04-08T23:49:04Z dieggsy: but every explanation i'm finding is like "simply do this" for that step but explains the rest of the steps in detail 2021-04-08T23:53:39Z s-video quit (Ping timeout: 260 seconds) 2021-04-08T23:54:27Z s-video joined #scheme 2021-04-08T23:57:29Z dieggsy: oh, can i just keep moding by powers of two until it's not zero. i'll try that 2021-04-09T00:07:02Z jcowan: Zipheir: Note that views (whhc were put into GHC and then removed) are more complex than view functions. 2021-04-09T00:11:20Z Zipheir: jcowan: That makes sense. 2021-04-09T00:21:37Z jcowan: See also https://sourceforge.net/projects/q-lang/files/docs/current/qnutshell-0.5.pdf/download section 2.12 which describes views in Q (the ancestor of Pure) 2021-04-09T00:38:02Z badkins joined #scheme 2021-04-09T00:46:23Z skapata quit (Ping timeout: 260 seconds) 2021-04-09T00:53:41Z badkins quit (Remote host closed the connection) 2021-04-09T00:54:18Z badkins joined #scheme 2021-04-09T00:59:26Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T01:10:44Z skapata joined #scheme 2021-04-09T01:25:14Z hendursaga quit (Remote host closed the connection) 2021-04-09T01:25:57Z hendursaga joined #scheme 2021-04-09T01:33:16Z logand``` quit (Ping timeout: 260 seconds) 2021-04-09T01:40:54Z badkins joined #scheme 2021-04-09T01:45:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T01:52:47Z skapate joined #scheme 2021-04-09T01:55:03Z skapata quit (Ping timeout: 246 seconds) 2021-04-09T02:06:57Z s-video quit (Ping timeout: 246 seconds) 2021-04-09T02:23:59Z evdubs quit (Quit: Leaving) 2021-04-09T02:25:37Z evdubs joined #scheme 2021-04-09T02:26:37Z s-video joined #scheme 2021-04-09T02:28:18Z dieggsy: jcowan: i found out this exists, heh https://rosettacode.org/wiki/Miller%E2%80%93Rabin_primality_test#Scheme 2021-04-09T02:28:22Z dieggsy: rather nice 2021-04-09T02:53:09Z lockywolf: dieggsy, SICP has an exercise about writing a Miller-Rabin test in Scheme 2021-04-09T02:53:53Z dieggsy: Ah, neat 2021-04-09T02:54:04Z dieggsy: damn it, everything i want to do has an exercise in SICP 2021-04-09T02:54:16Z dieggsy: i'll get through it one day 2021-04-09T02:55:58Z mzan quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-09T02:58:17Z mzan joined #scheme 2021-04-09T03:08:21Z jao quit (Ping timeout: 260 seconds) 2021-04-09T03:11:13Z aeth quit (Ping timeout: 268 seconds) 2021-04-09T03:12:27Z aeth joined #scheme 2021-04-09T03:41:50Z badkins joined #scheme 2021-04-09T03:43:35Z wklew quit (Ping timeout: 246 seconds) 2021-04-09T03:46:33Z badkins quit (Ping timeout: 260 seconds) 2021-04-09T03:51:13Z remby joined #scheme 2021-04-09T03:52:03Z klovett quit (Remote host closed the connection) 2021-04-09T03:52:38Z klovett joined #scheme 2021-04-09T04:01:16Z remby left #scheme 2021-04-09T04:05:59Z tryte quit (Remote host closed the connection) 2021-04-09T04:06:13Z tryte joined #scheme 2021-04-09T04:16:12Z torbo quit (Remote host closed the connection) 2021-04-09T04:32:47Z iv4nshm4k-v joined #scheme 2021-04-09T04:41:45Z gravicappa joined #scheme 2021-04-09T04:46:43Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-04-09T04:49:54Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-09T04:57:23Z marusich joined #scheme 2021-04-09T05:04:58Z elliott_ joined #scheme 2021-04-09T05:13:10Z skapate quit (Ping timeout: 246 seconds) 2021-04-09T05:33:58Z abralek_ quit (Remote host closed the connection) 2021-04-09T05:34:16Z abralek_ joined #scheme 2021-04-09T05:39:25Z ChoHag: heh. if (num > min || num < max) ain't gonna check it's in the range you think it is... 2021-04-09T05:40:01Z ChoHag: dieggsy: I was programming for decades before I even picked SICP up. Decided I'd better figure out what I'd been doing all my life. 2021-04-09T05:40:27Z ChoHag: Still found new stuff in it. 2021-04-09T05:42:55Z badkins joined #scheme 2021-04-09T05:47:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T05:54:39Z hyiltiz quit (Ping timeout: 268 seconds) 2021-04-09T05:57:12Z hyiltiz joined #scheme 2021-04-09T05:58:00Z klovett quit (Remote host closed the connection) 2021-04-09T05:58:17Z klovett joined #scheme 2021-04-09T05:59:58Z klovett quit (Remote host closed the connection) 2021-04-09T06:00:36Z klovett joined #scheme 2021-04-09T06:10:39Z skapata joined #scheme 2021-04-09T06:17:53Z snan quit (Remote host closed the connection) 2021-04-09T06:18:18Z snan joined #scheme 2021-04-09T06:29:09Z frost-lab joined #scheme 2021-04-09T07:05:40Z Major_Biscuit joined #scheme 2021-04-09T07:06:34Z tdammers_ joined #scheme 2021-04-09T07:07:17Z tdammers quit (Ping timeout: 246 seconds) 2021-04-09T07:12:02Z civodul joined #scheme 2021-04-09T07:16:13Z sdu quit (Ping timeout: 252 seconds) 2021-04-09T07:21:20Z jobol joined #scheme 2021-04-09T07:22:16Z tophullyte quit (Quit: Leaving) 2021-04-09T07:23:11Z sdu joined #scheme 2021-04-09T07:26:31Z raingloom quit (Ping timeout: 268 seconds) 2021-04-09T07:30:13Z ChoHag: Computer programs differ to some extent from manyother copyrightable works because computer programs always serve a functional purpose. 2021-04-09T07:30:49Z ChoHag: There you go. Computer programs are functional by decree. 2021-04-09T07:32:29Z motersen quit (Remote host closed the connection) 2021-04-09T07:33:13Z motersen joined #scheme 2021-04-09T07:35:01Z snan: https://en.wikipedia.org/wiki/Equivocation ♥♥♥ 2021-04-09T07:36:20Z snan: An endless source of mirth 2021-04-09T07:39:12Z amirouche: ChoHag: my compiler use a trampoline and a CPS transformation. 2021-04-09T07:39:22Z ChoHag: This is fun; watch judges try to understand programming: https://www.supremecourt.gov/opinions/20pdf/18-956_d18f.pdf 2021-04-09T07:43:40Z badkins joined #scheme 2021-04-09T07:43:52Z iv4nshm4k-v: ChoHag: I wouldn't be surprised to know that SC judges actually understand programmingg /much better/ than an average layperson. Also, as machine code, I'd say that the purpose of a computer program is indeed often utalitarian. (As opposed to source code in a book, for example.) 2021-04-09T07:45:29Z iv4nshm4k-v occasionally does rather non-standard typos 2021-04-09T07:51:53Z badkins quit (Ping timeout: 252 seconds) 2021-04-09T07:58:29Z snan: Utilitarian is one of the hardest words to spell. It took a while before I saw the connection to "utility" 2021-04-09T08:02:17Z jobol quit (*.net *.split) 2021-04-09T08:02:17Z civodul quit (*.net *.split) 2021-04-09T08:02:17Z skapata quit (*.net *.split) 2021-04-09T08:02:17Z hyiltiz quit (*.net *.split) 2021-04-09T08:02:18Z Aquazi quit (*.net *.split) 2021-04-09T08:02:18Z notzmv quit (*.net *.split) 2021-04-09T08:02:18Z cky944 quit (*.net *.split) 2021-04-09T08:02:18Z emacsomancer quit (*.net *.split) 2021-04-09T08:02:18Z ozzloy quit (*.net *.split) 2021-04-09T08:02:18Z webshinra quit (*.net *.split) 2021-04-09T08:02:18Z midow quit (*.net *.split) 2021-04-09T08:02:18Z cemerick quit (*.net *.split) 2021-04-09T08:02:18Z rickbutton quit (*.net *.split) 2021-04-09T08:02:18Z theruran_ quit (*.net *.split) 2021-04-09T08:02:19Z pflanze quit (*.net *.split) 2021-04-09T08:02:19Z iv4nshm4k-v quit (*.net *.split) 2021-04-09T08:02:19Z jcowan quit (*.net *.split) 2021-04-09T08:02:19Z physpi quit (*.net *.split) 2021-04-09T08:02:19Z lortabac quit (*.net *.split) 2021-04-09T08:02:19Z cipherchess quit (*.net *.split) 2021-04-09T08:02:19Z Ekho quit (*.net *.split) 2021-04-09T08:02:19Z ggoes quit (*.net *.split) 2021-04-09T08:02:19Z englishm quit (*.net *.split) 2021-04-09T08:02:19Z astronavt quit (*.net *.split) 2021-04-09T08:02:19Z ravndal quit (*.net *.split) 2021-04-09T08:02:19Z johnjay quit (*.net *.split) 2021-04-09T08:02:19Z alelos quit (*.net *.split) 2021-04-09T08:02:19Z averell quit (*.net *.split) 2021-04-09T08:02:19Z iltutmus quit (*.net *.split) 2021-04-09T08:02:19Z Noisytoot quit (*.net *.split) 2021-04-09T08:02:19Z daviid quit (*.net *.split) 2021-04-09T08:02:19Z ineiros quit (*.net *.split) 2021-04-09T08:02:19Z r0kc4t quit (*.net *.split) 2021-04-09T08:02:20Z amoe quit (*.net *.split) 2021-04-09T08:02:20Z amirouche quit (*.net *.split) 2021-04-09T08:02:20Z Tempest quit (*.net *.split) 2021-04-09T08:02:20Z Oxyd quit (*.net *.split) 2021-04-09T08:02:20Z terpri_ quit (*.net *.split) 2021-04-09T08:02:20Z iv4nshm4k0v quit (*.net *.split) 2021-04-09T08:02:20Z Irvise[m] quit (*.net *.split) 2021-04-09T08:02:21Z motersen quit (*.net *.split) 2021-04-09T08:02:21Z tryte quit (*.net *.split) 2021-04-09T08:02:21Z hendursaga quit (*.net *.split) 2021-04-09T08:02:21Z cantstanya quit (*.net *.split) 2021-04-09T08:02:21Z zooey quit (*.net *.split) 2021-04-09T08:02:21Z xelxebar quit (*.net *.split) 2021-04-09T08:02:21Z madage quit (*.net *.split) 2021-04-09T08:02:21Z Blkt quit (*.net *.split) 2021-04-09T08:02:21Z Gnuxie[m] quit (*.net *.split) 2021-04-09T08:02:22Z ecraven quit (*.net *.split) 2021-04-09T08:02:22Z fnstudio quit (*.net *.split) 2021-04-09T08:02:22Z gagbo[m] quit (*.net *.split) 2021-04-09T08:02:22Z pinoaffe quit (*.net *.split) 2021-04-09T08:02:23Z M7x[m]1 quit (*.net *.split) 2021-04-09T08:02:23Z jackhill quit (*.net *.split) 2021-04-09T08:02:23Z z0d quit (*.net *.split) 2021-04-09T08:02:23Z rubic88 quit (*.net *.split) 2021-04-09T08:02:23Z weinholt quit (*.net *.split) 2021-04-09T08:02:23Z danielkoning quit (*.net *.split) 2021-04-09T08:02:24Z elly quit (*.net *.split) 2021-04-09T08:02:24Z conjunctive quit (*.net *.split) 2021-04-09T08:02:24Z akkad quit (*.net *.split) 2021-04-09T08:02:24Z elliott_ quit (*.net *.split) 2021-04-09T08:02:24Z gravicappa quit (*.net *.split) 2021-04-09T08:02:24Z nckx quit (*.net *.split) 2021-04-09T08:02:24Z Zipheir quit (*.net *.split) 2021-04-09T08:02:24Z hive-mind quit (*.net *.split) 2021-04-09T08:02:24Z rmrfchik quit (*.net *.split) 2021-04-09T08:02:25Z pranavats quit (*.net *.split) 2021-04-09T08:02:25Z DeeEff_ quit (*.net *.split) 2021-04-09T08:02:25Z paulj quit (*.net *.split) 2021-04-09T08:02:25Z dnm quit (*.net *.split) 2021-04-09T08:02:25Z gf3 quit (*.net *.split) 2021-04-09T08:02:25Z midre quit (*.net *.split) 2021-04-09T08:02:25Z lockywolf quit (*.net *.split) 2021-04-09T08:02:25Z Yardanico quit (*.net *.split) 2021-04-09T08:02:25Z Duns_Scrotus quit (*.net *.split) 2021-04-09T08:02:25Z teiresias quit (*.net *.split) 2021-04-09T08:02:25Z mbakke quit (*.net *.split) 2021-04-09T08:02:25Z grobe0ba quit (*.net *.split) 2021-04-09T08:02:25Z _anb quit (*.net *.split) 2021-04-09T08:02:25Z siiky quit (*.net *.split) 2021-04-09T08:02:25Z balkamos quit (*.net *.split) 2021-04-09T08:02:25Z teej quit (*.net *.split) 2021-04-09T08:02:26Z siraben quit (*.net *.split) 2021-04-09T08:02:26Z romariorios[m] quit (*.net *.split) 2021-04-09T08:02:26Z dieggsy quit (*.net *.split) 2021-04-09T08:02:26Z Ericson2314 quit (*.net *.split) 2021-04-09T08:02:26Z groovy quit (*.net *.split) 2021-04-09T08:02:26Z krjt quit (*.net *.split) 2021-04-09T08:02:26Z Wezl quit (*.net *.split) 2021-04-09T08:02:26Z bashbjorn quit (*.net *.split) 2021-04-09T08:02:26Z SirDayBat quit (*.net *.split) 2021-04-09T08:02:26Z stephe quit (*.net *.split) 2021-04-09T08:02:26Z dTal quit (*.net *.split) 2021-04-09T08:02:26Z bsima quit (*.net *.split) 2021-04-09T08:02:26Z nisstyre quit (*.net *.split) 2021-04-09T08:02:26Z mjl quit (*.net *.split) 2021-04-09T08:02:26Z gwatt quit (*.net *.split) 2021-04-09T08:02:26Z zgrep quit (*.net *.split) 2021-04-09T08:02:26Z aoh quit (*.net *.split) 2021-04-09T08:02:26Z ski quit (*.net *.split) 2021-04-09T08:02:26Z aeth quit (*.net *.split) 2021-04-09T08:02:26Z sxmx quit (*.net *.split) 2021-04-09T08:02:27Z xlei quit (*.net *.split) 2021-04-09T08:02:27Z dozzie quit (*.net *.split) 2021-04-09T08:02:27Z ByronJohnson quit (*.net *.split) 2021-04-09T08:02:27Z edgar-rft quit (*.net *.split) 2021-04-09T08:02:27Z stultulo quit (*.net *.split) 2021-04-09T08:02:27Z _________ quit (*.net *.split) 2021-04-09T08:02:27Z kbtr quit (*.net *.split) 2021-04-09T08:02:27Z Kooda quit (*.net *.split) 2021-04-09T08:02:27Z evdubs quit (*.net *.split) 2021-04-09T08:02:27Z mdhughes quit (*.net *.split) 2021-04-09T08:02:27Z ullbeking quit (*.net *.split) 2021-04-09T08:02:27Z GreaseMonkey quit (*.net *.split) 2021-04-09T08:02:27Z rann quit (*.net *.split) 2021-04-09T08:02:27Z GoGi quit (*.net *.split) 2021-04-09T08:02:27Z nmeum quit (*.net *.split) 2021-04-09T08:02:27Z Balooga quit (*.net *.split) 2021-04-09T08:02:28Z iv-so quit (*.net *.split) 2021-04-09T08:02:28Z davl quit (*.net *.split) 2021-04-09T08:02:28Z fiddlerwoaroof quit (*.net *.split) 2021-04-09T08:02:28Z Mayoi quit (*.net *.split) 2021-04-09T08:02:28Z d_run quit (*.net *.split) 2021-04-09T08:02:28Z kwmiebach quit (*.net *.split) 2021-04-09T08:02:28Z ec quit (*.net *.split) 2021-04-09T08:02:28Z Lysandros quit (*.net *.split) 2021-04-09T08:02:28Z samth quit (*.net *.split) 2021-04-09T08:02:28Z sdu quit (*.net *.split) 2021-04-09T08:02:28Z frost-lab quit (*.net *.split) 2021-04-09T08:02:28Z abralek_ quit (*.net *.split) 2021-04-09T08:02:28Z gnomon quit (*.net *.split) 2021-04-09T08:02:28Z eMBee quit (*.net *.split) 2021-04-09T08:02:28Z m1dnight_ quit (*.net *.split) 2021-04-09T08:02:28Z vv8 quit (*.net *.split) 2021-04-09T08:02:28Z elflng quit (*.net *.split) 2021-04-09T08:02:28Z woky quit (*.net *.split) 2021-04-09T08:02:29Z Khisanth quit (*.net *.split) 2021-04-09T08:02:29Z aquijoule_ quit (*.net *.split) 2021-04-09T08:02:29Z xandkar quit (*.net *.split) 2021-04-09T08:02:29Z gabot quit (*.net *.split) 2021-04-09T08:02:29Z jxy quit (*.net *.split) 2021-04-09T08:02:29Z DerGuteMoritz quit (*.net *.split) 2021-04-09T08:02:29Z choas quit (*.net *.split) 2021-04-09T08:02:29Z stux16777216Away quit (*.net *.split) 2021-04-09T08:02:29Z marusich quit (*.net *.split) 2021-04-09T08:02:29Z Formbi quit (*.net *.split) 2021-04-09T08:02:29Z Zenton quit (*.net *.split) 2021-04-09T08:02:29Z sudden quit (*.net *.split) 2021-04-09T08:02:29Z yosafbridge quit (*.net *.split) 2021-04-09T08:02:29Z stux|work quit (*.net *.split) 2021-04-09T08:02:29Z `micro quit (*.net *.split) 2021-04-09T08:02:29Z lloda quit (*.net *.split) 2021-04-09T08:02:29Z snits quit (*.net *.split) 2021-04-09T08:02:29Z LeoNerd quit (*.net *.split) 2021-04-09T08:02:29Z kjak quit (*.net *.split) 2021-04-09T08:02:29Z terrorjack quit (*.net *.split) 2021-04-09T08:02:30Z copec quit (*.net *.split) 2021-04-09T08:02:30Z nevermind quit (*.net *.split) 2021-04-09T08:02:30Z epony quit (*.net *.split) 2021-04-09T08:02:30Z klovett quit (*.net *.split) 2021-04-09T08:02:30Z bandali quit (*.net *.split) 2021-04-09T08:02:30Z codingquark quit (*.net *.split) 2021-04-09T08:02:30Z dan64- quit (*.net *.split) 2021-04-09T08:02:30Z mason quit (*.net *.split) 2021-04-09T08:02:30Z lad quit (*.net *.split) 2021-04-09T08:02:30Z pounce quit (*.net *.split) 2021-04-09T08:02:30Z eagleflo quit (*.net *.split) 2021-04-09T08:02:30Z topoi quit (*.net *.split) 2021-04-09T08:02:30Z remexre quit (*.net *.split) 2021-04-09T08:02:30Z lavaflow quit (*.net *.split) 2021-04-09T08:02:30Z tdammers_ quit (*.net *.split) 2021-04-09T08:02:30Z Major_Biscuit quit (*.net *.split) 2021-04-09T08:02:30Z mzan quit (*.net *.split) 2021-04-09T08:02:31Z ramrunner quit (*.net *.split) 2021-04-09T08:02:31Z tessier quit (*.net *.split) 2021-04-09T08:02:31Z ornxka quit (*.net *.split) 2021-04-09T08:02:31Z rotty quit (*.net *.split) 2021-04-09T08:02:31Z ChoHag quit (*.net *.split) 2021-04-09T08:02:31Z ohama quit (*.net *.split) 2021-04-09T08:02:31Z fizzie quit (*.net *.split) 2021-04-09T08:02:31Z Raphael[m]1 quit (*.net *.split) 2021-04-09T08:02:31Z dpk quit (*.net *.split) 2021-04-09T08:02:31Z rudybot quit (*.net *.split) 2021-04-09T08:02:31Z ArneBab quit (*.net *.split) 2021-04-09T08:02:31Z bchar quit (*.net *.split) 2021-04-09T08:02:31Z duncanm quit (*.net *.split) 2021-04-09T08:02:31Z edmoore quit (*.net *.split) 2021-04-09T08:02:31Z wigust quit (*.net *.split) 2021-04-09T08:02:32Z cross quit (*.net *.split) 2021-04-09T08:02:32Z dto quit (*.net *.split) 2021-04-09T08:02:32Z em quit (*.net *.split) 2021-04-09T08:02:32Z foof quit (*.net *.split) 2021-04-09T08:02:32Z s-video quit (*.net *.split) 2021-04-09T08:02:32Z sm2n quit (*.net *.split) 2021-04-09T08:02:32Z hugo quit (*.net *.split) 2021-04-09T08:02:32Z wasamasa quit (*.net *.split) 2021-04-09T08:02:32Z malaclyps quit (*.net *.split) 2021-04-09T08:02:32Z xsperry quit (*.net *.split) 2021-04-09T08:02:32Z X-Scale quit (*.net *.split) 2021-04-09T08:02:33Z fadein quit (*.net *.split) 2021-04-09T08:02:33Z clacke quit (*.net *.split) 2021-04-09T08:02:33Z lpsmith quit (*.net *.split) 2021-04-09T08:02:33Z Vultyre quit (*.net *.split) 2021-04-09T08:02:33Z mjsir911 quit (*.net *.split) 2021-04-09T08:02:33Z brettgilio quit (Max SendQ exceeded) 2021-04-09T08:02:50Z brettgilio joined #scheme 2021-04-09T08:07:02Z nmeum joined #scheme 2021-04-09T08:07:02Z foof joined #scheme 2021-04-09T08:07:02Z em joined #scheme 2021-04-09T08:07:02Z wigust joined #scheme 2021-04-09T08:07:02Z dto joined #scheme 2021-04-09T08:07:02Z cross joined #scheme 2021-04-09T08:07:02Z duncanm joined #scheme 2021-04-09T08:07:02Z edmoore joined #scheme 2021-04-09T08:07:02Z bchar joined #scheme 2021-04-09T08:07:02Z ArneBab joined #scheme 2021-04-09T08:07:02Z rudybot joined #scheme 2021-04-09T08:07:02Z dpk joined #scheme 2021-04-09T08:07:02Z fizzie joined #scheme 2021-04-09T08:07:02Z webshinra joined #scheme 2021-04-09T08:07:02Z ozzloy joined #scheme 2021-04-09T08:07:02Z emacsomancer joined #scheme 2021-04-09T08:07:02Z cky944 joined #scheme 2021-04-09T08:07:02Z notzmv joined #scheme 2021-04-09T08:07:02Z Aquazi joined #scheme 2021-04-09T08:07:02Z hyiltiz joined #scheme 2021-04-09T08:07:02Z skapata joined #scheme 2021-04-09T08:07:02Z civodul joined #scheme 2021-04-09T08:07:02Z jobol joined #scheme 2021-04-09T08:07:02Z lavaflow joined #scheme 2021-04-09T08:07:02Z topoi joined #scheme 2021-04-09T08:07:02Z remexre joined #scheme 2021-04-09T08:07:02Z eagleflo joined #scheme 2021-04-09T08:07:02Z pounce joined #scheme 2021-04-09T08:07:02Z lad joined #scheme 2021-04-09T08:07:02Z mason joined #scheme 2021-04-09T08:07:02Z dan64- joined #scheme 2021-04-09T08:07:02Z codingquark joined #scheme 2021-04-09T08:07:02Z bandali joined #scheme 2021-04-09T08:07:02Z klovett joined #scheme 2021-04-09T08:07:02Z johnjay joined #scheme 2021-04-09T08:07:02Z alelos joined #scheme 2021-04-09T08:07:02Z averell joined #scheme 2021-04-09T08:07:02Z iltutmus joined #scheme 2021-04-09T08:07:02Z Noisytoot joined #scheme 2021-04-09T08:07:02Z daviid joined #scheme 2021-04-09T08:07:02Z ineiros joined #scheme 2021-04-09T08:07:02Z r0kc4t joined #scheme 2021-04-09T08:07:02Z amoe joined #scheme 2021-04-09T08:07:02Z amirouche joined #scheme 2021-04-09T08:07:02Z Tempest joined #scheme 2021-04-09T08:07:02Z Oxyd joined #scheme 2021-04-09T08:07:02Z pinoaffe joined #scheme 2021-04-09T08:07:02Z jackhill joined #scheme 2021-04-09T08:07:02Z z0d joined #scheme 2021-04-09T08:07:02Z rubic88 joined #scheme 2021-04-09T08:07:02Z weinholt joined #scheme 2021-04-09T08:07:02Z danielkoning joined #scheme 2021-04-09T08:07:02Z iv4nshm4k-v joined #scheme 2021-04-09T08:07:02Z midow joined #scheme 2021-04-09T08:07:02Z cemerick joined #scheme 2021-04-09T08:07:02Z rickbutton joined #scheme 2021-04-09T08:07:02Z pflanze joined #scheme 2021-04-09T08:07:02Z jcowan joined #scheme 2021-04-09T08:07:02Z Ekho joined #scheme 2021-04-09T08:07:02Z lortabac joined #scheme 2021-04-09T08:07:02Z cipherchess joined #scheme 2021-04-09T08:07:02Z ggoes joined #scheme 2021-04-09T08:07:02Z englishm joined #scheme 2021-04-09T08:07:02Z astronavt joined #scheme 2021-04-09T08:07:02Z ravndal joined #scheme 2021-04-09T08:07:02Z gravicappa joined #scheme 2021-04-09T08:07:02Z Zipheir joined #scheme 2021-04-09T08:07:02Z hive-mind joined #scheme 2021-04-09T08:07:02Z rmrfchik joined #scheme 2021-04-09T08:07:02Z pranavats joined #scheme 2021-04-09T08:07:02Z DeeEff_ joined #scheme 2021-04-09T08:07:02Z fadein joined #scheme 2021-04-09T08:07:02Z lpsmith joined #scheme 2021-04-09T08:07:02Z Vultyre joined #scheme 2021-04-09T08:07:02Z mjsir911 joined #scheme 2021-04-09T08:07:02Z elly joined #scheme 2021-04-09T08:07:02Z conjunctive joined #scheme 2021-04-09T08:07:02Z akkad joined #scheme 2021-04-09T08:07:02Z s-video joined #scheme 2021-04-09T08:07:02Z sm2n joined #scheme 2021-04-09T08:07:02Z hugo joined #scheme 2021-04-09T08:07:02Z xsperry joined #scheme 2021-04-09T08:07:02Z wasamasa joined #scheme 2021-04-09T08:07:02Z malaclyps joined #scheme 2021-04-09T08:07:02Z X-Scale joined #scheme 2021-04-09T08:07:02Z aoh joined #scheme 2021-04-09T08:07:02Z ski joined #scheme 2021-04-09T08:07:02Z zgrep joined #scheme 2021-04-09T08:07:02Z gwatt joined #scheme 2021-04-09T08:07:02Z nisstyre joined #scheme 2021-04-09T08:07:02Z bsima joined #scheme 2021-04-09T08:07:02Z dTal joined #scheme 2021-04-09T08:07:02Z SirDayBat joined #scheme 2021-04-09T08:07:02Z bashbjorn joined #scheme 2021-04-09T08:07:02Z Wezl joined #scheme 2021-04-09T08:07:02Z krjt joined #scheme 2021-04-09T08:07:02Z groovy joined #scheme 2021-04-09T08:07:02Z mjl joined #scheme 2021-04-09T08:07:02Z siiky joined #scheme 2021-04-09T08:07:02Z _anb joined #scheme 2021-04-09T08:07:02Z balkamos joined #scheme 2021-04-09T08:07:02Z grobe0ba joined #scheme 2021-04-09T08:07:02Z teiresias joined #scheme 2021-04-09T08:07:02Z Duns_Scrotus joined #scheme 2021-04-09T08:07:02Z Yardanico joined #scheme 2021-04-09T08:07:02Z lockywolf joined #scheme 2021-04-09T08:07:02Z midre joined #scheme 2021-04-09T08:07:02Z dnm joined #scheme 2021-04-09T08:07:02Z gf3 joined #scheme 2021-04-09T08:07:02Z paulj joined #scheme 2021-04-09T08:07:02Z nevermind joined #scheme 2021-04-09T08:07:02Z copec joined #scheme 2021-04-09T08:07:02Z terrorjack joined #scheme 2021-04-09T08:07:02Z kjak joined #scheme 2021-04-09T08:07:02Z LeoNerd joined #scheme 2021-04-09T08:07:02Z snits joined #scheme 2021-04-09T08:07:02Z lloda joined #scheme 2021-04-09T08:07:02Z `micro joined #scheme 2021-04-09T08:07:02Z stux|work joined #scheme 2021-04-09T08:07:02Z yosafbridge joined #scheme 2021-04-09T08:07:02Z sudden joined #scheme 2021-04-09T08:07:02Z Zenton joined #scheme 2021-04-09T08:07:02Z Formbi joined #scheme 2021-04-09T08:07:02Z marusich joined #scheme 2021-04-09T08:07:02Z iv4nshm4k0v joined #scheme 2021-04-09T08:07:02Z terpri_ joined #scheme 2021-04-09T08:07:02Z samth joined #scheme 2021-04-09T08:07:02Z Lysandros joined #scheme 2021-04-09T08:07:02Z d_run joined #scheme 2021-04-09T08:07:02Z kwmiebach joined #scheme 2021-04-09T08:07:02Z ec joined #scheme 2021-04-09T08:07:02Z Mayoi joined #scheme 2021-04-09T08:07:02Z fiddlerwoaroof joined #scheme 2021-04-09T08:07:02Z davl joined #scheme 2021-04-09T08:07:02Z iv-so joined #scheme 2021-04-09T08:07:02Z Balooga joined #scheme 2021-04-09T08:07:02Z GoGi joined #scheme 2021-04-09T08:07:02Z GreaseMonkey joined #scheme 2021-04-09T08:07:02Z mdhughes joined #scheme 2021-04-09T08:07:02Z evdubs joined #scheme 2021-04-09T08:07:02Z Kooda joined #scheme 2021-04-09T08:07:02Z kbtr joined #scheme 2021-04-09T08:07:02Z _________ joined #scheme 2021-04-09T08:07:02Z stultulo joined #scheme 2021-04-09T08:07:02Z edgar-rft joined #scheme 2021-04-09T08:07:02Z ByronJohnson joined #scheme 2021-04-09T08:07:02Z dozzie joined #scheme 2021-04-09T08:07:02Z xlei joined #scheme 2021-04-09T08:07:02Z sxmx joined #scheme 2021-04-09T08:07:02Z aeth joined #scheme 2021-04-09T08:07:02Z stux16777216Away joined #scheme 2021-04-09T08:07:02Z choas joined #scheme 2021-04-09T08:07:02Z DerGuteMoritz joined #scheme 2021-04-09T08:07:02Z jxy joined #scheme 2021-04-09T08:07:02Z gabot joined #scheme 2021-04-09T08:07:02Z xandkar joined #scheme 2021-04-09T08:07:02Z Khisanth joined #scheme 2021-04-09T08:07:02Z woky joined #scheme 2021-04-09T08:07:02Z elflng joined #scheme 2021-04-09T08:07:02Z vv8 joined #scheme 2021-04-09T08:07:02Z m1dnight_ joined #scheme 2021-04-09T08:07:02Z eMBee joined #scheme 2021-04-09T08:07:02Z gnomon joined #scheme 2021-04-09T08:07:02Z abralek_ joined #scheme 2021-04-09T08:07:02Z sdu joined #scheme 2021-04-09T08:07:06Z Blkt joined #scheme 2021-04-09T08:07:06Z ecraven joined #scheme 2021-04-09T08:07:06Z fnstudio joined #scheme 2021-04-09T08:07:07Z nckx joined #scheme 2021-04-09T08:07:09Z ec quit (Ping timeout: 250 seconds) 2021-04-09T08:07:11Z X-Scale quit (Ping timeout: 240 seconds) 2021-04-09T08:07:15Z frost-lab joined #scheme 2021-04-09T08:07:32Z epony joined #scheme 2021-04-09T08:08:04Z nmeum quit (Remote host closed the connection) 2021-04-09T08:08:13Z conjunctive quit (Ping timeout: 252 seconds) 2021-04-09T08:08:15Z motersen joined #scheme 2021-04-09T08:08:15Z tryte joined #scheme 2021-04-09T08:08:15Z hendursaga joined #scheme 2021-04-09T08:08:15Z cantstanya joined #scheme 2021-04-09T08:08:15Z zooey joined #scheme 2021-04-09T08:08:15Z xelxebar joined #scheme 2021-04-09T08:08:15Z madage joined #scheme 2021-04-09T08:08:17Z edmoore quit (Ping timeout: 245 seconds) 2021-04-09T08:08:28Z stephe joined #scheme 2021-04-09T08:08:40Z theruran_ joined #scheme 2021-04-09T08:08:47Z Aquazi quit (Ping timeout: 266 seconds) 2021-04-09T08:08:56Z nmeum joined #scheme 2021-04-09T08:09:11Z physpi joined #scheme 2021-04-09T08:09:33Z hendursaga quit (Ping timeout: 240 seconds) 2021-04-09T08:09:44Z edmoore joined #scheme 2021-04-09T08:09:46Z physpi quit (Excess Flood) 2021-04-09T08:09:57Z rgherdt joined #scheme 2021-04-09T08:10:05Z physpi joined #scheme 2021-04-09T08:10:18Z conjunctive joined #scheme 2021-04-09T08:10:24Z rann joined #scheme 2021-04-09T08:10:28Z ec joined #scheme 2021-04-09T08:10:49Z hendursa1 joined #scheme 2021-04-09T08:11:57Z X-Scale joined #scheme 2021-04-09T08:12:12Z teej joined #scheme 2021-04-09T08:12:22Z ullbeking joined #scheme 2021-04-09T08:13:04Z Aquazi joined #scheme 2021-04-09T08:13:51Z dpk: that's an odd argument that seems to conflate algorithms (not copyrightable, but patentable) with programs (copyrightable texts expressing algorithms) 2021-04-09T08:14:11Z ChoHag joined #scheme 2021-04-09T08:17:33Z dpk: useful analogy: an academic paper may be a copyrightable text but describes non-copyrightable methods, formulas, etc. the functional aspect, though, is the underlying non-copyrightable idea, not the words used to express it 2021-04-09T08:19:00Z raingloom joined #scheme 2021-04-09T08:20:03Z frost-lab quit (Changing host) 2021-04-09T08:20:03Z frost-lab joined #scheme 2021-04-09T08:20:04Z stephe quit (Changing host) 2021-04-09T08:20:04Z stephe joined #scheme 2021-04-09T08:20:04Z theruran_ quit (Changing host) 2021-04-09T08:20:04Z theruran_ joined #scheme 2021-04-09T08:20:04Z edmoore quit (Changing host) 2021-04-09T08:20:04Z edmoore joined #scheme 2021-04-09T08:20:04Z conjunctive quit (Changing host) 2021-04-09T08:20:04Z conjunctive joined #scheme 2021-04-09T08:20:04Z physpi quit (Changing host) 2021-04-09T08:20:04Z physpi joined #scheme 2021-04-09T08:20:04Z rann quit (Changing host) 2021-04-09T08:20:04Z rann joined #scheme 2021-04-09T08:20:04Z ec quit (Changing host) 2021-04-09T08:20:04Z ec joined #scheme 2021-04-09T08:20:05Z teej quit (Changing host) 2021-04-09T08:20:05Z teej joined #scheme 2021-04-09T08:20:05Z ullbeking quit (Changing host) 2021-04-09T08:20:05Z ullbeking joined #scheme 2021-04-09T08:20:05Z Aquazi quit (Changing host) 2021-04-09T08:20:05Z Aquazi joined #scheme 2021-04-09T08:34:29Z clog quit (Ping timeout: 260 seconds) 2021-04-09T08:34:36Z clog joined #scheme 2021-04-09T08:39:29Z amirouche: Zipheir: the most strict isolation level is not "snapshot" but "serializable", that means that every transaction happen as if they happened one after the other. If the engine decide that a transaction creates a conflict according to that rule of "serializable", it reject the transaction with a conflict error. 2021-04-09T08:40:31Z clacke joined #scheme 2021-04-09T08:43:11Z s-video quit (Ping timeout: 240 seconds) 2021-04-09T08:49:08Z tdammers_ joined #scheme 2021-04-09T08:49:08Z Major_Biscuit joined #scheme 2021-04-09T08:49:08Z mzan joined #scheme 2021-04-09T08:49:08Z ramrunner joined #scheme 2021-04-09T08:49:08Z tessier joined #scheme 2021-04-09T08:49:08Z ornxka joined #scheme 2021-04-09T08:49:08Z rotty joined #scheme 2021-04-09T08:49:08Z ohama joined #scheme 2021-04-09T08:49:19Z Major_Biscuit quit (Max SendQ exceeded) 2021-04-09T08:49:47Z Major_Biscuit joined #scheme 2021-04-09T08:50:45Z nmeum quit (Remote host closed the connection) 2021-04-09T08:51:36Z nmeum joined #scheme 2021-04-09T08:56:39Z hugo quit (Quit: ZNC 1.7.5 - https://znc.in) 2021-04-09T08:56:49Z hugo joined #scheme 2021-04-09T09:00:22Z hugo quit (Client Quit) 2021-04-09T09:00:31Z hugo joined #scheme 2021-04-09T09:01:29Z sdu quit (Ping timeout: 268 seconds) 2021-04-09T09:02:58Z sdu joined #scheme 2021-04-09T09:03:36Z balkamos quit (Ping timeout: 258 seconds) 2021-04-09T09:04:21Z balkamos joined #scheme 2021-04-09T09:07:49Z hugo quit (Quit: ZNC 1.7.5 - https://znc.in) 2021-04-09T09:08:04Z hugo joined #scheme 2021-04-09T09:20:41Z Ericson2314 joined #scheme 2021-04-09T09:20:41Z Irvise[m] joined #scheme 2021-04-09T09:20:41Z M7x[m] joined #scheme 2021-04-09T09:20:41Z siraben joined #scheme 2021-04-09T09:20:41Z Gnuxie[m] joined #scheme 2021-04-09T09:20:42Z dieggsy joined #scheme 2021-04-09T09:20:42Z mbakke joined #scheme 2021-04-09T09:20:42Z gagbo[m] joined #scheme 2021-04-09T09:20:42Z Raphael[m] joined #scheme 2021-04-09T09:20:47Z romariorios[m] joined #scheme 2021-04-09T09:34:42Z logand joined #scheme 2021-04-09T09:37:33Z iv4nshm4k-v left #scheme 2021-04-09T09:39:37Z skapata quit (Remote host closed the connection) 2021-04-09T09:44:36Z badkins joined #scheme 2021-04-09T09:45:50Z ManDay joined #scheme 2021-04-09T09:46:30Z ManDay quit (Client Quit) 2021-04-09T09:48:38Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T10:17:18Z midow quit (Ping timeout: 246 seconds) 2021-04-09T10:53:08Z abralek_ quit (Read error: Connection reset by peer) 2021-04-09T10:53:22Z abralek_ joined #scheme 2021-04-09T10:53:52Z Core3748 joined #scheme 2021-04-09T10:53:53Z abralek_ quit (Read error: Connection reset by peer) 2021-04-09T11:03:29Z Core3748 quit (Read error: Connection reset by peer) 2021-04-09T11:03:44Z abralek_ joined #scheme 2021-04-09T11:04:15Z Core2470 joined #scheme 2021-04-09T11:04:15Z lritter joined #scheme 2021-04-09T11:04:16Z abralek_ quit (Read error: Connection reset by peer) 2021-04-09T11:45:36Z badkins joined #scheme 2021-04-09T11:49:37Z frost-lab quit (Quit: Connection closed) 2021-04-09T11:49:38Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T11:58:46Z badkins joined #scheme 2021-04-09T12:03:15Z badkins quit (Ping timeout: 265 seconds) 2021-04-09T12:06:20Z lockywolf: meh... calling other programs in Linux is super slow 2021-04-09T12:07:05Z dieggsy: lockywolf: wait, what 2021-04-09T12:08:43Z lockywolf: process->string seems to be slow on my machine 2021-04-09T12:22:19Z mmmattyx joined #scheme 2021-04-09T12:34:47Z nmeum quit (Remote host closed the connection) 2021-04-09T12:35:27Z nmeum joined #scheme 2021-04-09T12:47:02Z badkins joined #scheme 2021-04-09T12:51:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T12:51:20Z Vultyre quit (Quit: ZNC 1.7.5+deb4 - https://znc.in) 2021-04-09T12:55:47Z badkins joined #scheme 2021-04-09T12:56:49Z Vultyre joined #scheme 2021-04-09T13:01:03Z foof: compared to a lisp machine, maybe... 2021-04-09T13:01:22Z foof: compared to windows it's blazingly fast 2021-04-09T13:05:04Z badkins quit (Ping timeout: 268 seconds) 2021-04-09T13:07:58Z johnjay quit (Ping timeout: 240 seconds) 2021-04-09T13:11:24Z johnjay joined #scheme 2021-04-09T13:14:23Z longshi joined #scheme 2021-04-09T13:18:11Z johnjay quit (Ping timeout: 240 seconds) 2021-04-09T13:21:11Z johnjay joined #scheme 2021-04-09T13:21:12Z lockywolf: who used chibi's call-with-process-io ? 2021-04-09T13:21:32Z lockywolf: why are "stdout" and "stderr" #{Output-Port} ? 2021-04-09T13:24:14Z foof: everybody who used process->string or any of the other utilities built on call-with-process-io 2021-04-09T13:25:46Z foof: but those two ports are opened with open-input-file-descriptor 2021-04-09T13:28:01Z klovett quit (Remote host closed the connection) 2021-04-09T13:28:15Z klovett joined #scheme 2021-04-09T13:29:13Z lockywolf: how do I read what the child process outputs to it's stdout? 2021-04-09T13:29:37Z foof: $ chibi-scheme -mchibi.process -p'(call-with-process-io"ls"list)' 2021-04-09T13:29:45Z foof: (6241 # # #) 2021-04-09T13:29:50Z foof: looks right to me 2021-04-09T13:30:40Z foof: read with read (or read-char, or read-string, etc.) 2021-04-09T13:31:23Z foof: the child's stdout is an input-port for the parent (the proc passed to call-with-process-io) 2021-04-09T13:33:51Z foof: this is the inherent confusion of pipes - one man's input is another man's output 2021-04-09T13:42:08Z lockywolf: what does (process->output+error+status "getfattr --no-dereference --only-values -n user.lwf.mindmap.skip-grandchildren .") print on your machine? 2021-04-09T13:42:55Z cantstanya quit (Remote host closed the connection) 2021-04-09T13:46:42Z lockywolf: foof, you're overwriting out and err in process->output+error+status in process.scm 2021-04-09T13:49:17Z lockywolf: ccl-logbot, /version 2021-04-09T13:50:35Z lockywolf: lines 208, 209 and 213 2021-04-09T13:59:22Z badkins joined #scheme 2021-04-09T14:03:57Z badkins quit (Ping timeout: 260 seconds) 2021-04-09T14:07:09Z foof: oh, sorry, that's a regression from a couple of days ago 2021-04-09T14:07:13Z foof: (dangers of head) 2021-04-09T14:10:41Z foof: ... but not related to your original problem since you were using process->string 2021-04-09T14:11:36Z johnjay quit (Ping timeout: 260 seconds) 2021-04-09T14:14:25Z johnjay joined #scheme 2021-04-09T14:14:47Z foof: pushed the fix 2021-04-09T14:15:15Z logand quit (Read error: Connection reset by peer) 2021-04-09T14:15:15Z rmrfchi joined #scheme 2021-04-09T14:16:14Z badkins joined #scheme 2021-04-09T14:16:33Z logand joined #scheme 2021-04-09T14:17:53Z logand quit (Remote host closed the connection) 2021-04-09T14:18:06Z rmrfchik quit (Ping timeout: 265 seconds) 2021-04-09T14:18:41Z logand joined #scheme 2021-04-09T14:19:19Z lockywolf: I switched to process->output+error+status, because I want to suppress stderr actually 2021-04-09T14:19:40Z lockywolf: it seems to me that stderr is leaking somewhere 2021-04-09T14:19:43Z lockywolf: but I cannot prove it 2021-04-09T14:25:12Z badkins quit (Ping timeout: 252 seconds) 2021-04-09T14:38:59Z foof: what makes you think that? 2021-04-09T14:43:34Z abralek_ joined #scheme 2021-04-09T14:45:25Z lockywolf: I am running my "fs-graph" generating script on a relatively large directory tree, and piping 1>/dev/null. I am seeing two messages, one after another "user.lwf.mindmap.skip-grandchildren: No such attribute", even though the only line where external program is called is the one I have given above: (process->output+error+status "getfattr --no-dereference --only-values -n user.lwf.mindmap.skip-grandchildren .") 2021-04-09T14:45:26Z Core2470 quit (Ping timeout: 240 seconds) 2021-04-09T14:46:25Z mzan quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-09T14:46:33Z lockywolf: so stderr should not be displayed anywhere 2021-04-09T14:47:09Z ChoHag: 1> redirects stdout. 2021-04-09T14:47:57Z ChoHag: Or are you silencing stdout intentionally to see stderr (in any case the '1' is superfluous)? 2021-04-09T14:48:53Z lockywolf: yes, I am silencing stdout intentinally, to see stderr 2021-04-09T14:48:57Z lockywolf: which should be empty 2021-04-09T14:51:44Z lockywolf: I like 1, because it reminds me what exactly I am redirecting. 2021-04-09T14:58:52Z foof: $ chibi -mchibi.process -p'(process->output+error+status"getfattr --no-dereference --only-values -n user.lwf.mindmap.skip-grandchildren .")' 2021-04-09T14:58:54Z foof: ("" ".: user.lwf.mindmap.skip-grandchildren: No such attribute\n" 256) 2021-04-09T14:59:02Z foof: works for me 2021-04-09T14:59:40Z lockywolf: it works for me as well. 2021-04-09T14:59:50Z mzan joined #scheme 2021-04-09T15:00:10Z lockywolf: it's just "sometimes" this ".: user.lwf.mindmap.skip-grandchildren: No such attribute" propagates to the chibi's stderr 2021-04-09T15:00:32Z lockywolf: and I can't find what "sometimes" exactly means 2021-04-09T15:02:29Z foof: hmmm... race condition in redirecting the ports? but they are all setup before the child process even starts. 2021-04-09T15:02:56Z foof: maybe somehow reusing an fd? 2021-04-09T15:03:17Z lockywolf: this "leaky stderr" disappears if I explicitly assign the cadr of the output somewhere 2021-04-09T15:03:43Z foof: what do you mean? 2021-04-09T15:05:13Z jao joined #scheme 2021-04-09T15:05:54Z foof: you mean store (cadr err-pipe) somewhere so it doesn't gc? 2021-04-09T15:06:07Z lockywolf: yes 2021-04-09T15:06:52Z lockywolf: damn, debpaste banned me 2021-04-09T15:06:58Z foof: it shouldn't matter 2021-04-09T15:07:21Z foof: but there could be a bug in the fd unification logic... will take a look 2021-04-09T15:08:56Z lockywolf: I mean, if I destructure the returned list into components inside a let*, and only use the first one (stdout), then stderr does not leak 2021-04-09T15:10:13Z hugo quit (Quit: ZNC 1.7.5 - https://znc.in) 2021-04-09T15:10:31Z hugo joined #scheme 2021-04-09T15:11:36Z lockywolf: ah, no, still leaks 2021-04-09T15:12:12Z foof: I'll have to be able to reproduce it first 2021-04-09T15:12:52Z Zipheir: amirouche: It would be cool to express those different isolation levels in a semantics. This https://www.andres-loeh.de/SemanticsOfVersionControl/ comes to mind. 2021-04-09T15:13:51Z lockywolf: I don't seem to be able to find a definite cause. 2021-04-09T15:14:57Z badkins joined #scheme 2021-04-09T15:15:01Z lockywolf: running this script on some large tree should be enough https://gitlab.com/Lockywolf/scsh-xattr-mindmap/-/blob/master/filesystem-mindmap-scheme.chibi.scm 2021-04-09T15:15:39Z lockywolf: "large" means ~200 000 files 2021-04-09T15:15:59Z lockywolf: sorry, no, ~100 000 directories 2021-04-09T15:17:06Z foof: will take a look, need sleep now 2021-04-09T15:17:26Z lockywolf: +1 2021-04-09T15:17:39Z lockywolf: I'm running it on an Android Sdk file tree 2021-04-09T15:21:25Z justinethier joined #scheme 2021-04-09T15:21:27Z amirouche: ty 2021-04-09T15:21:51Z foof: (at that size you'll definitely end up recycling fds) 2021-04-09T15:22:38Z skapata joined #scheme 2021-04-09T15:23:15Z notzmv quit (Ping timeout: 260 seconds) 2021-04-09T15:27:41Z dieggsy: lockywolf: is chibi the right tool in the first place for that sort of volume lol 2021-04-09T15:50:24Z DHARMAKAYA joined #scheme 2021-04-09T15:54:18Z longshi quit (Ping timeout: 240 seconds) 2021-04-09T16:12:33Z skapata quit (Remote host closed the connection) 2021-04-09T16:27:58Z Core7184 joined #scheme 2021-04-09T16:27:59Z abralek_ quit (Read error: Connection reset by peer) 2021-04-09T16:31:11Z DHARMAKAYA quit (Ping timeout: 240 seconds) 2021-04-09T16:31:15Z Major_Biscuit quit (Quit: WeeChat 3.0.1) 2021-04-09T16:46:04Z supercoven joined #scheme 2021-04-09T16:55:01Z badkins quit (Remote host closed the connection) 2021-04-09T16:55:31Z badkins joined #scheme 2021-04-09T16:59:58Z badkins quit (Ping timeout: 240 seconds) 2021-04-09T17:03:21Z raingloom quit (Ping timeout: 258 seconds) 2021-04-09T17:05:17Z tophullyte joined #scheme 2021-04-09T17:09:26Z tophullyte quit (Remote host closed the connection) 2021-04-09T17:09:33Z phossil joined #scheme 2021-04-09T17:13:20Z badkins joined #scheme 2021-04-09T17:22:27Z notzmv joined #scheme 2021-04-09T17:28:32Z remby joined #scheme 2021-04-09T17:30:41Z jao quit (Ping timeout: 240 seconds) 2021-04-09T17:31:15Z jao joined #scheme 2021-04-09T17:36:45Z gravicappa quit (Ping timeout: 265 seconds) 2021-04-09T17:36:49Z remby: are these recursive calls are just stacking up (move from to) and (void) is the result or answer they all need? really vague questions but I'm just trying to visualize it. 2021-04-09T17:36:51Z remby: https://termbin.com/asqy 2021-04-09T17:38:20Z gravicappa joined #scheme 2021-04-09T17:38:41Z Zipheir: remby: That looks imperative... 2021-04-09T17:38:54Z remby: it is, I copied it from some imperative code 2021-04-09T17:39:41Z Zipheir: remby: Well then, the answer is the final state. (void) is just some pseudo return-value. 2021-04-09T17:40:30Z remby: I did not use (void) before, I used when and negated the condition, but in the repl I noticed the result is void anyways 2021-04-09T17:43:33Z Zipheir: remby: Right, because the value of (when #f ...) is usually the same as (void) (i.e. unspecified). 2021-04-09T17:44:19Z Zipheir: remby: Incidentally, you can write Hanoi in a recursive functional style. 2021-04-09T17:44:27Z remby: I 2021-04-09T17:44:37Z remby: I'd be interested in any pointers 2021-04-09T17:44:46Z remby: I was just trying to solve an hanoi variant 2021-04-09T17:46:08Z Zipheir: remby: How are you representing the state? 2021-04-09T17:47:24Z remby: like this (printf "Move disc from ~a to ~a!\n" from to) 2021-04-09T17:47:42Z remby: so I can see the sequence of moves 2021-04-09T17:49:34Z phossil quit (Quit: Leaving) 2021-04-09T17:49:57Z tophullyte joined #scheme 2021-04-09T17:50:17Z remby: > (move "A" "B") -> Move disc from A to B! 2021-04-09T17:51:56Z amirouche: how are the towers represented? 2021-04-09T17:52:53Z remby: I don't have anything but the sequence of moves 2021-04-09T17:54:20Z remby: it's a really simple program for the usual variant https://termbin.com/bx57 2021-04-09T18:05:46Z Zipheir: remby: I'd like to suggest trying it with an actual state representation. It's easier to reason about than a bunch of output. 2021-04-09T18:07:11Z remby: ok 2021-04-09T18:07:18Z rj joined #scheme 2021-04-09T18:08:15Z Zipheir: If you want to stick to an imperative algorithm, you can just replace your `move' procedure with something that changes the current state (probably as well as printing what it did). 2021-04-09T18:08:45Z phillbush joined #scheme 2021-04-09T18:09:21Z remby: yeah, I could probably just do it with lists I think 2021-04-09T18:09:42Z Zipheir: Indeed so. 2021-04-09T18:10:06Z Zipheir: The alternative functional algorithm would just involve passing that state around. 2021-04-09T18:13:06Z remby: thanks 2021-04-09T18:21:32Z izh_ joined #scheme 2021-04-09T18:24:08Z phillbush quit (Quit: Leaving) 2021-04-09T18:24:28Z phillbush joined #scheme 2021-04-09T18:24:47Z hyiltiz quit (Ping timeout: 260 seconds) 2021-04-09T18:27:46Z hyiltiz joined #scheme 2021-04-09T18:29:07Z fadein quit (Ping timeout: 248 seconds) 2021-04-09T18:30:04Z badkins quit (Remote host closed the connection) 2021-04-09T18:36:27Z raingloom joined #scheme 2021-04-09T18:40:10Z Core7184 quit (Read error: Connection reset by peer) 2021-04-09T18:41:56Z badkins joined #scheme 2021-04-09T18:43:42Z aeth quit (Ping timeout: 252 seconds) 2021-04-09T18:45:42Z aeth joined #scheme 2021-04-09T19:00:58Z s-video joined #scheme 2021-04-09T19:09:57Z skapata joined #scheme 2021-04-09T19:30:31Z rj quit (Quit: rj) 2021-04-09T19:41:26Z jobol quit (Quit: Leaving) 2021-04-09T19:53:18Z supercoven quit (Ping timeout: 268 seconds) 2021-04-09T19:58:02Z bitmapper joined #scheme 2021-04-09T20:12:52Z midow joined #scheme 2021-04-09T20:13:31Z izh_ quit (Quit: Leaving) 2021-04-09T20:20:48Z jeko joined #scheme 2021-04-09T20:39:11Z jeko quit (Ping timeout: 260 seconds) 2021-04-09T20:40:59Z logand quit (Read error: Connection reset by peer) 2021-04-09T20:44:43Z logand joined #scheme 2021-04-09T20:45:32Z terpri_ quit (Remote host closed the connection) 2021-04-09T20:45:54Z terpri_ joined #scheme 2021-04-09T20:51:18Z gravicappa quit (Ping timeout: 252 seconds) 2021-04-09T21:03:16Z klovett quit (Remote host closed the connection) 2021-04-09T21:04:02Z klovett joined #scheme 2021-04-09T21:11:10Z jao quit (Remote host closed the connection) 2021-04-09T21:15:50Z jao joined #scheme 2021-04-09T21:17:26Z marusich quit (Ping timeout: 240 seconds) 2021-04-09T21:21:19Z fadein joined #scheme 2021-04-09T21:41:35Z aeth_ joined #scheme 2021-04-09T21:41:43Z aeth quit (Disconnected by services) 2021-04-09T21:41:48Z aeth_ is now known as aeth 2021-04-09T21:43:41Z phillbush quit (Ping timeout: 268 seconds) 2021-04-09T21:46:15Z lritter quit (Quit: Leaving) 2021-04-09T21:52:07Z phillbush joined #scheme 2021-04-09T21:53:21Z jao quit (Remote host closed the connection) 2021-04-09T21:55:23Z jao joined #scheme 2021-04-09T22:19:47Z justinethier quit (Quit: Connection closed) 2021-04-09T22:20:15Z terpri_ quit (Quit: Leaving) 2021-04-09T22:20:29Z terpri_ joined #scheme 2021-04-09T22:23:17Z tophullyte quit (Ping timeout: 260 seconds) 2021-04-09T22:24:57Z tophullyte joined #scheme 2021-04-09T22:27:33Z jao- joined #scheme 2021-04-09T22:27:37Z jao- quit (Client Quit) 2021-04-09T23:07:54Z rgherdt quit (Ping timeout: 245 seconds) 2021-04-09T23:23:15Z klovett quit (Remote host closed the connection) 2021-04-09T23:23:31Z klovett joined #scheme 2021-04-09T23:23:55Z civodul quit (Ping timeout: 260 seconds) 2021-04-09T23:32:09Z foof: dieggsy: why not chibi? it's not a cpu-bound task. 2021-04-09T23:39:14Z dieggsy: foof: the question came more from a place of ignorance than a place of looking down on chibi TBH 2021-04-09T23:39:45Z dieggsy: i'm r7rs minded enough that maybe I should be using chibi for simple tasks lol 2021-04-09T23:51:41Z remby quit (Remote host closed the connection) 2021-04-09T23:54:28Z s-video quit (Ping timeout: 258 seconds) 2021-04-10T00:08:33Z s-video joined #scheme 2021-04-10T00:12:23Z badkins quit (Remote host closed the connection) 2021-04-10T00:16:05Z badkins joined #scheme 2021-04-10T00:17:41Z tatsumaru joined #scheme 2021-04-10T00:17:55Z tatsumaru: hey, how yall doin' 2021-04-10T00:19:34Z Zipheir: Hi tatsumaru. 2021-04-10T00:19:53Z tatsumaru: anything cool to share? 2021-04-10T00:20:29Z Zipheir: Nothing comes to mind just now. 2021-04-10T00:21:02Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T00:21:15Z tatsumaru: may I ask what is the difference between lua fibers and scheme continuations 2021-04-10T00:22:28Z Zipheir looks up fibers. 2021-04-10T00:22:35Z Zipheir: They sound more like coroutines. 2021-04-10T00:24:14Z Zipheir: I'd imagine that they're a special case of continuation, from a language theory perspective. 2021-04-10T00:26:18Z aeth: restricted continuations can be more optimizable than the general Scheme ones 2021-04-10T00:26:56Z tatsumaru: interesting 2021-04-10T00:27:36Z Zipheir: You can certainly implement coroutines with undelimited continuations, although there's debate over whether that's a good idea. 2021-04-10T00:36:02Z tatsumaru: In the 3.0.5 Guile reference manual it says that scheme development is pretty much over and the future of Guile will be dictated by other languages such as Clojure etc. Isn't scheme still in development? 2021-04-10T00:38:01Z Zipheir: That sounds like some Guile opinion. Yes, Scheme is still being developed. 2021-04-10T00:38:37Z Zipheir: I wonder if that's their official policy or just someone's kvetching. 2021-04-10T00:39:27Z badkins joined #scheme 2021-04-10T00:40:29Z tatsumaru: I am sorry, I misinterpreted what it says. Here's the actual quote: "With R6RS and R7RS, the unified Scheme standardization process appears to have more 2021-04-10T00:40:30Z tatsumaru: or less run its course. There will continue to be more code written in terms of both systems, and modules defined using the SRFI process, and Guile will support both. However for future directions, Guile takes inspiration from other related language communities: Racket, Clojure, Concurrent ML, and so on." 2021-04-10T00:43:30Z Zipheir: IMHO, Guile has wanted to be The GNU Scripting Language more than just another Scheme for a long time. 2021-04-10T00:44:10Z Zipheir: Not that I have any issue with taking inspiration from other languages, of course. 2021-04-10T00:44:31Z aeth: Scheme development is pretty much over, though. Everyone is going to consolidate behind Airship Scheme. 2021-04-10T00:44:38Z badkins quit (Ping timeout: 240 seconds) 2021-04-10T00:44:56Z tatsumaru: aeth is that your impl? 2021-04-10T00:46:14Z aeth: and it's very incomplete 2021-04-10T00:46:48Z tatsumaru: let's hope it doesn't stall 2021-04-10T00:46:58Z aeth: I mean, it kind of has. 2021-04-10T00:47:19Z aeth: I reached the point where I have to write tests or it will collapse under its own weight and break 2 things for every 1 thing I add. 2021-04-10T00:47:33Z aeth: Surprisingly early. I guess because languages are brittle like that. A lot of possible combinations in the API. 2021-04-10T00:48:28Z tatsumaru: you have to sacrifice for the bright future of scheme 2021-04-10T00:51:25Z aeth: when I get to the point where I'm just writing documentation, I take a break from my projects for a while 2021-04-10T00:53:17Z Zipheir: Beware the Curse of Lisp. 2021-04-10T00:53:37Z tatsumaru: aeth what's the main value proposition of airship 2021-04-10T00:56:40Z aeth: tatsumaru: less mismatch between the host language and the implemented language 2021-04-10T00:57:02Z tatsumaru: does that mean it's very close to the specification? 2021-04-10T00:57:16Z aeth: I mean, it's not hard to satisfy the Scheme specification 2021-04-10T00:57:46Z aeth: It is probably going to wind up being one of the most concise source-to-source compilers rather than interpreter, though 2021-04-10T00:58:23Z aeth: With C you have to reimplement a lot, and you get slow compilation times, and you don't even get to benefit from those slow compilation times because the generated code isn't idiomatic C. 2021-04-10T01:00:56Z aeth: Of course, I wouldn't be surprised if these problems were resolved because they've had decades of a headstart to resolve them. 2021-04-10T01:01:32Z tatsumaru: rust has something called 'check' not sure if its innovative or not, but basically it allows you to compile without creating a binary just to make sure your code compiles but save a lot of time. 2021-04-10T01:02:55Z tatsumaru: not sure why I felt that was relevant 2021-04-10T01:03:26Z Zipheir: You can do that with Scheme, although it probably won't tell you much. 2021-04-10T01:05:46Z badkins joined #scheme 2021-04-10T01:09:24Z Zipheir: Agda, Pie, and other languages designed for interactive use have simultaneous checking and inference. 2021-04-10T01:11:57Z DHARMAKAYA joined #scheme 2021-04-10T01:14:35Z tatsumaru: oh look at this , the Buddha has graced us with his holy presence 2021-04-10T01:15:49Z badkins quit (Ping timeout: 268 seconds) 2021-04-10T01:24:33Z badkins joined #scheme 2021-04-10T01:25:00Z tophullyte quit (Quit: Leaving) 2021-04-10T01:27:58Z logand` joined #scheme 2021-04-10T01:29:22Z tatsumaru left #scheme 2021-04-10T01:29:27Z badkins quit (Ping timeout: 265 seconds) 2021-04-10T01:31:51Z logand quit (Ping timeout: 268 seconds) 2021-04-10T01:57:53Z epony quit (Ping timeout: 240 seconds) 2021-04-10T02:19:56Z terpri_ is now known as terpri 2021-04-10T02:21:55Z cemerick quit (Ping timeout: 246 seconds) 2021-04-10T02:29:10Z cemerick joined #scheme 2021-04-10T02:29:25Z raingloom quit (Quit: https://quassel-irc.org - Chat comfortably. Anywhere.) 2021-04-10T02:31:51Z mmmattyx quit (Quit: Connection closed for inactivity) 2021-04-10T02:41:08Z epony joined #scheme 2021-04-10T02:51:54Z phillbush quit (Quit: Leaving) 2021-04-10T02:53:29Z midow quit (Ping timeout: 258 seconds) 2021-04-10T03:04:34Z aeth quit (Ping timeout: 252 seconds) 2021-04-10T03:06:29Z aeth joined #scheme 2021-04-10T03:12:33Z badkins joined #scheme 2021-04-10T03:17:14Z badkins quit (Ping timeout: 265 seconds) 2021-04-10T03:27:23Z jao quit (Ping timeout: 265 seconds) 2021-04-10T03:51:38Z DHARMAKAYA quit (Ping timeout: 240 seconds) 2021-04-10T03:56:52Z marusich joined #scheme 2021-04-10T04:03:56Z logand` quit (Remote host closed the connection) 2021-04-10T04:17:10Z rmrfchi quit (*.net *.split) 2021-04-10T04:17:10Z tdammers_ quit (*.net *.split) 2021-04-10T04:17:10Z ramrunner quit (*.net *.split) 2021-04-10T04:17:10Z tessier quit (*.net *.split) 2021-04-10T04:17:10Z ornxka quit (*.net *.split) 2021-04-10T04:17:10Z rotty quit (*.net *.split) 2021-04-10T04:17:10Z ohama quit (*.net *.split) 2021-04-10T04:17:10Z hendursa1 quit (*.net *.split) 2021-04-10T04:17:11Z motersen quit (*.net *.split) 2021-04-10T04:17:11Z tryte quit (*.net *.split) 2021-04-10T04:17:11Z zooey quit (*.net *.split) 2021-04-10T04:17:11Z xelxebar quit (*.net *.split) 2021-04-10T04:17:11Z madage quit (*.net *.split) 2021-04-10T04:17:12Z Raphael[m] quit (*.net *.split) 2021-04-10T04:17:12Z clacke quit (*.net *.split) 2021-04-10T04:17:12Z clog quit (*.net *.split) 2021-04-10T04:17:12Z Blkt quit (*.net *.split) 2021-04-10T04:17:12Z ecraven quit (*.net *.split) 2021-04-10T04:17:12Z fnstudio quit (*.net *.split) 2021-04-10T04:17:13Z fizzie quit (*.net *.split) 2021-04-10T04:17:13Z dpk quit (*.net *.split) 2021-04-10T04:17:14Z rudybot quit (*.net *.split) 2021-04-10T04:17:14Z ArneBab quit (*.net *.split) 2021-04-10T04:17:14Z bchar quit (*.net *.split) 2021-04-10T04:17:14Z duncanm quit (*.net *.split) 2021-04-10T04:17:14Z dto quit (*.net *.split) 2021-04-10T04:17:14Z wigust quit (*.net *.split) 2021-04-10T04:17:14Z foof quit (*.net *.split) 2021-04-10T04:17:14Z cross quit (*.net *.split) 2021-04-10T04:17:14Z em quit (*.net *.split) 2021-04-10T04:17:14Z skapata quit (*.net *.split) 2021-04-10T04:17:14Z cky944 quit (*.net *.split) 2021-04-10T04:17:14Z emacsomancer quit (*.net *.split) 2021-04-10T04:17:14Z ozzloy quit (*.net *.split) 2021-04-10T04:17:14Z webshinra quit (*.net *.split) 2021-04-10T04:17:15Z bandali quit (*.net *.split) 2021-04-10T04:17:15Z codingquark quit (*.net *.split) 2021-04-10T04:17:15Z dan64- quit (*.net *.split) 2021-04-10T04:17:15Z mason quit (*.net *.split) 2021-04-10T04:17:15Z lad quit (*.net *.split) 2021-04-10T04:17:15Z pounce quit (*.net *.split) 2021-04-10T04:17:15Z remexre quit (*.net *.split) 2021-04-10T04:17:15Z lavaflow quit (*.net *.split) 2021-04-10T04:17:15Z topoi quit (*.net *.split) 2021-04-10T04:17:15Z eagleflo quit (*.net *.split) 2021-04-10T04:17:15Z epony quit (*.net *.split) 2021-04-10T04:17:15Z aeth quit (*.net *.split) 2021-04-10T04:17:15Z cemerick quit (*.net *.split) 2021-04-10T04:17:15Z klovett quit (*.net *.split) 2021-04-10T04:17:15Z fadein quit (*.net *.split) 2021-04-10T04:17:15Z johnjay quit (*.net *.split) 2021-04-10T04:17:16Z sm2n quit (*.net *.split) 2021-04-10T04:17:16Z wasamasa quit (*.net *.split) 2021-04-10T04:17:16Z malaclyps quit (*.net *.split) 2021-04-10T04:17:16Z xsperry quit (*.net *.split) 2021-04-10T04:17:16Z balkamos quit (*.net *.split) 2021-04-10T04:17:17Z gagbo[m] quit (*.net *.split) 2021-04-10T04:17:17Z ullbeking quit (*.net *.split) 2021-04-10T04:17:17Z teej quit (*.net *.split) 2021-04-10T04:17:17Z X-Scale quit (*.net *.split) 2021-04-10T04:17:17Z physpi quit (*.net *.split) 2021-04-10T04:17:17Z edmoore quit (*.net *.split) 2021-04-10T04:17:17Z elly quit (*.net *.split) 2021-04-10T04:17:18Z akkad quit (*.net *.split) 2021-04-10T04:17:18Z Gnuxie[m] quit (*.net *.split) 2021-04-10T04:17:19Z lpsmith quit (*.net *.split) 2021-04-10T04:17:19Z mjsir911 quit (*.net *.split) 2021-04-10T04:17:19Z hyiltiz quit (*.net *.split) 2021-04-10T04:17:19Z notzmv quit (*.net *.split) 2021-04-10T04:17:19Z nckx quit (*.net *.split) 2021-04-10T04:17:19Z Zipheir quit (*.net *.split) 2021-04-10T04:17:19Z hive-mind quit (*.net *.split) 2021-04-10T04:17:19Z pranavats quit (*.net *.split) 2021-04-10T04:17:19Z DeeEff_ quit (*.net *.split) 2021-04-10T04:17:20Z rickbutton quit (*.net *.split) 2021-04-10T04:17:20Z pflanze quit (*.net *.split) 2021-04-10T04:17:20Z jcowan quit (*.net *.split) 2021-04-10T04:17:20Z lortabac quit (*.net *.split) 2021-04-10T04:17:20Z cipherchess quit (*.net *.split) 2021-04-10T04:17:20Z Ekho quit (*.net *.split) 2021-04-10T04:17:20Z ggoes quit (*.net *.split) 2021-04-10T04:17:20Z englishm quit (*.net *.split) 2021-04-10T04:17:20Z astronavt quit (*.net *.split) 2021-04-10T04:17:20Z ravndal quit (*.net *.split) 2021-04-10T04:17:20Z sdu quit (*.net *.split) 2021-04-10T04:17:21Z ec quit (*.net *.split) 2021-04-10T04:17:21Z rann quit (*.net *.split) 2021-04-10T04:17:21Z conjunctive quit (*.net *.split) 2021-04-10T04:17:21Z pinoaffe quit (*.net *.split) 2021-04-10T04:17:21Z jackhill quit (*.net *.split) 2021-04-10T04:17:21Z z0d quit (*.net *.split) 2021-04-10T04:17:21Z rubic88 quit (*.net *.split) 2021-04-10T04:17:21Z danielkoning quit (*.net *.split) 2021-04-10T04:17:21Z weinholt quit (*.net *.split) 2021-04-10T04:17:21Z marusich quit (*.net *.split) 2021-04-10T04:17:21Z alelos quit (*.net *.split) 2021-04-10T04:17:21Z averell quit (*.net *.split) 2021-04-10T04:17:21Z iltutmus quit (*.net *.split) 2021-04-10T04:17:21Z Noisytoot quit (*.net *.split) 2021-04-10T04:17:21Z daviid quit (*.net *.split) 2021-04-10T04:17:21Z ineiros quit (*.net *.split) 2021-04-10T04:17:22Z r0kc4t quit (*.net *.split) 2021-04-10T04:17:22Z amoe quit (*.net *.split) 2021-04-10T04:17:22Z amirouche quit (*.net *.split) 2021-04-10T04:17:22Z Tempest quit (*.net *.split) 2021-04-10T04:17:22Z Oxyd quit (*.net *.split) 2021-04-10T04:18:00Z marusich joined #scheme 2021-04-10T04:18:00Z aeth joined #scheme 2021-04-10T04:18:01Z epony joined #scheme 2021-04-10T04:18:01Z cemerick joined #scheme 2021-04-10T04:18:01Z klovett joined #scheme 2021-04-10T04:18:01Z fadein joined #scheme 2021-04-10T04:18:01Z skapata joined #scheme 2021-04-10T04:18:01Z hyiltiz joined #scheme 2021-04-10T04:18:01Z notzmv joined #scheme 2021-04-10T04:18:01Z rmrfchi joined #scheme 2021-04-10T04:18:01Z johnjay joined #scheme 2021-04-10T04:18:01Z Raphael[m] joined #scheme 2021-04-10T04:18:01Z gagbo[m] joined #scheme 2021-04-10T04:18:01Z Gnuxie[m] joined #scheme 2021-04-10T04:18:01Z balkamos joined #scheme 2021-04-10T04:18:01Z sdu joined #scheme 2021-04-10T04:18:01Z ohama joined #scheme 2021-04-10T04:18:01Z rotty joined #scheme 2021-04-10T04:18:01Z ornxka joined #scheme 2021-04-10T04:18:01Z tessier joined #scheme 2021-04-10T04:18:01Z ramrunner joined #scheme 2021-04-10T04:18:01Z tdammers_ joined #scheme 2021-04-10T04:18:01Z clacke joined #scheme 2021-04-10T04:18:01Z clog joined #scheme 2021-04-10T04:18:01Z ullbeking joined #scheme 2021-04-10T04:18:01Z teej joined #scheme 2021-04-10T04:18:01Z X-Scale joined #scheme 2021-04-10T04:18:01Z hendursa1 joined #scheme 2021-04-10T04:18:01Z ec joined #scheme 2021-04-10T04:18:01Z rann joined #scheme 2021-04-10T04:18:01Z conjunctive joined #scheme 2021-04-10T04:18:01Z physpi joined #scheme 2021-04-10T04:18:01Z edmoore joined #scheme 2021-04-10T04:18:01Z madage joined #scheme 2021-04-10T04:18:01Z xelxebar joined #scheme 2021-04-10T04:18:01Z zooey joined #scheme 2021-04-10T04:18:01Z tryte joined #scheme 2021-04-10T04:18:01Z motersen joined #scheme 2021-04-10T04:18:01Z nckx joined #scheme 2021-04-10T04:18:01Z fnstudio joined #scheme 2021-04-10T04:18:01Z ecraven joined #scheme 2021-04-10T04:18:01Z Blkt joined #scheme 2021-04-10T04:18:01Z foof joined #scheme 2021-04-10T04:18:01Z em joined #scheme 2021-04-10T04:18:01Z wigust joined #scheme 2021-04-10T04:18:01Z dto joined #scheme 2021-04-10T04:18:01Z cross joined #scheme 2021-04-10T04:18:01Z duncanm joined #scheme 2021-04-10T04:18:01Z bchar joined #scheme 2021-04-10T04:18:01Z ArneBab joined #scheme 2021-04-10T04:18:01Z rudybot joined #scheme 2021-04-10T04:18:01Z dpk joined #scheme 2021-04-10T04:18:01Z fizzie joined #scheme 2021-04-10T04:18:01Z webshinra joined #scheme 2021-04-10T04:18:01Z ozzloy joined #scheme 2021-04-10T04:18:01Z emacsomancer joined #scheme 2021-04-10T04:18:01Z cky944 joined #scheme 2021-04-10T04:18:01Z lavaflow joined #scheme 2021-04-10T04:18:01Z topoi joined #scheme 2021-04-10T04:18:01Z remexre joined #scheme 2021-04-10T04:18:01Z eagleflo joined #scheme 2021-04-10T04:18:01Z pounce joined #scheme 2021-04-10T04:18:01Z lad joined #scheme 2021-04-10T04:18:01Z mason joined #scheme 2021-04-10T04:18:01Z dan64- joined #scheme 2021-04-10T04:18:01Z codingquark joined #scheme 2021-04-10T04:18:01Z bandali joined #scheme 2021-04-10T04:18:01Z malaclyps joined #scheme 2021-04-10T04:18:01Z wasamasa joined #scheme 2021-04-10T04:18:01Z xsperry joined #scheme 2021-04-10T04:18:01Z sm2n joined #scheme 2021-04-10T04:18:01Z akkad joined #scheme 2021-04-10T04:18:01Z elly joined #scheme 2021-04-10T04:18:01Z mjsir911 joined #scheme 2021-04-10T04:18:01Z lpsmith joined #scheme 2021-04-10T04:18:01Z DeeEff_ joined #scheme 2021-04-10T04:18:01Z pranavats joined #scheme 2021-04-10T04:18:01Z hive-mind joined #scheme 2021-04-10T04:18:01Z Zipheir joined #scheme 2021-04-10T04:18:01Z ravndal joined #scheme 2021-04-10T04:18:01Z astronavt joined #scheme 2021-04-10T04:18:01Z englishm joined #scheme 2021-04-10T04:18:01Z ggoes joined #scheme 2021-04-10T04:18:01Z cipherchess joined #scheme 2021-04-10T04:18:01Z lortabac joined #scheme 2021-04-10T04:18:01Z Ekho joined #scheme 2021-04-10T04:18:01Z jcowan joined #scheme 2021-04-10T04:18:01Z pflanze joined #scheme 2021-04-10T04:18:01Z rickbutton joined #scheme 2021-04-10T04:18:01Z danielkoning joined #scheme 2021-04-10T04:18:01Z weinholt joined #scheme 2021-04-10T04:18:01Z rubic88 joined #scheme 2021-04-10T04:18:01Z z0d joined #scheme 2021-04-10T04:18:01Z jackhill joined #scheme 2021-04-10T04:18:01Z pinoaffe joined #scheme 2021-04-10T04:18:01Z Oxyd joined #scheme 2021-04-10T04:18:01Z Tempest joined #scheme 2021-04-10T04:18:01Z amirouche joined #scheme 2021-04-10T04:18:01Z amoe joined #scheme 2021-04-10T04:18:01Z r0kc4t joined #scheme 2021-04-10T04:18:01Z ineiros joined #scheme 2021-04-10T04:18:01Z daviid joined #scheme 2021-04-10T04:18:01Z Noisytoot joined #scheme 2021-04-10T04:18:01Z iltutmus joined #scheme 2021-04-10T04:18:01Z averell joined #scheme 2021-04-10T04:18:01Z alelos joined #scheme 2021-04-10T04:18:08Z ZombieChicken joined #scheme 2021-04-10T04:18:09Z Ericson2314 quit (Max SendQ exceeded) 2021-04-10T04:18:09Z m1dnight_ quit (Max SendQ exceeded) 2021-04-10T04:18:25Z teej quit (Max SendQ exceeded) 2021-04-10T04:18:32Z nckx quit (Max SendQ exceeded) 2021-04-10T04:19:02Z siraben quit (Max SendQ exceeded) 2021-04-10T04:19:10Z m1dnight_ joined #scheme 2021-04-10T04:19:18Z nmeum quit (Remote host closed the connection) 2021-04-10T04:19:56Z mbakke quit (Ping timeout: 258 seconds) 2021-04-10T04:20:04Z gagbo[m] quit (Ping timeout: 252 seconds) 2021-04-10T04:20:04Z Gnuxie[m] quit (Ping timeout: 248 seconds) 2021-04-10T04:20:13Z nmeum joined #scheme 2021-04-10T04:20:14Z nckx joined #scheme 2021-04-10T04:20:19Z romariorios[m] quit (Ping timeout: 256 seconds) 2021-04-10T04:20:19Z M7x[m] quit (Ping timeout: 256 seconds) 2021-04-10T04:20:29Z stephe quit (Ping timeout: 250 seconds) 2021-04-10T04:20:46Z rann quit (Ping timeout: 245 seconds) 2021-04-10T04:20:47Z Raphael[m] quit (Ping timeout: 276 seconds) 2021-04-10T04:20:47Z clacke quit (Ping timeout: 276 seconds) 2021-04-10T04:20:48Z physpi quit (Ping timeout: 252 seconds) 2021-04-10T04:20:49Z Irvise[m] quit (Ping timeout: 245 seconds) 2021-04-10T04:20:49Z Aquazi quit (Ping timeout: 245 seconds) 2021-04-10T04:21:02Z notzmv quit (Ping timeout: 265 seconds) 2021-04-10T04:21:28Z dieggsy quit (Ping timeout: 258 seconds) 2021-04-10T04:21:32Z ullbeking quit (Ping timeout: 252 seconds) 2021-04-10T04:23:57Z theruran_ quit (Ping timeout: 250 seconds) 2021-04-10T04:23:58Z physpi joined #scheme 2021-04-10T04:24:18Z teej joined #scheme 2021-04-10T04:24:24Z theruran_ joined #scheme 2021-04-10T04:24:45Z notzmv joined #scheme 2021-04-10T04:24:49Z theruran_ quit (Excess Flood) 2021-04-10T04:24:50Z teej quit (Excess Flood) 2021-04-10T04:24:59Z theruran_ joined #scheme 2021-04-10T04:25:00Z stephe joined #scheme 2021-04-10T04:25:18Z teej joined #scheme 2021-04-10T04:25:53Z ullbeking joined #scheme 2021-04-10T04:26:52Z rann joined #scheme 2021-04-10T04:27:07Z Aquazi joined #scheme 2021-04-10T04:47:03Z skapata quit (Remote host closed the connection) 2021-04-10T04:48:32Z gravicappa joined #scheme 2021-04-10T04:56:54Z clacke joined #scheme 2021-04-10T04:59:38Z klovett quit (Remote host closed the connection) 2021-04-10T05:00:17Z klovett joined #scheme 2021-04-10T05:02:38Z marusich quit (Ping timeout: 240 seconds) 2021-04-10T05:04:11Z aeth quit (Ping timeout: 240 seconds) 2021-04-10T05:06:21Z aeth joined #scheme 2021-04-10T05:13:23Z badkins joined #scheme 2021-04-10T05:14:55Z tophullyte joined #scheme 2021-04-10T05:17:32Z klovett quit (Remote host closed the connection) 2021-04-10T05:17:38Z badkins quit (Ping timeout: 240 seconds) 2021-04-10T05:17:48Z klovett joined #scheme 2021-04-10T05:18:05Z marusich joined #scheme 2021-04-10T05:26:12Z epony quit (Quit: QUIT) 2021-04-10T05:26:56Z epony joined #scheme 2021-04-10T05:31:32Z siraben joined #scheme 2021-04-10T05:31:33Z siraben: Zipheir: are you referring to bidirectional type systems? 2021-04-10T05:33:23Z gagbo[m] joined #scheme 2021-04-10T05:33:23Z Gnuxie[m] joined #scheme 2021-04-10T05:33:23Z Ericson2314 joined #scheme 2021-04-10T05:33:23Z dieggsy joined #scheme 2021-04-10T05:33:23Z Irvise[m] joined #scheme 2021-04-10T05:33:23Z M7x[m] joined #scheme 2021-04-10T05:33:23Z Raphael[m] joined #scheme 2021-04-10T05:33:23Z mbakke joined #scheme 2021-04-10T05:33:29Z romariorios[m] joined #scheme 2021-04-10T05:39:17Z lockywolf: as far as I remember, r7rs-large still has several colours to ratify 2021-04-10T05:54:56Z marusich quit (Ping timeout: 245 seconds) 2021-04-10T06:04:16Z aeth quit (Ping timeout: 252 seconds) 2021-04-10T06:06:16Z aeth joined #scheme 2021-04-10T06:14:12Z marusich joined #scheme 2021-04-10T06:16:04Z marusich quit (Client Quit) 2021-04-10T06:40:39Z klovett quit (Remote host closed the connection) 2021-04-10T06:41:16Z logand joined #scheme 2021-04-10T06:41:33Z klovett joined #scheme 2021-04-10T06:46:43Z ZombieChicken quit (Quit: WeeChat 3.1) 2021-04-10T06:47:34Z bitmapper quit (Quit: Connection closed for inactivity) 2021-04-10T06:51:21Z rgherdt joined #scheme 2021-04-10T06:51:48Z rgherdt quit (Read error: Connection reset by peer) 2021-04-10T06:58:35Z nly joined #scheme 2021-04-10T07:09:43Z aeth quit (Ping timeout: 252 seconds) 2021-04-10T07:11:18Z aeth joined #scheme 2021-04-10T07:14:17Z badkins joined #scheme 2021-04-10T07:16:54Z rgherdt joined #scheme 2021-04-10T07:18:59Z badkins quit (Ping timeout: 260 seconds) 2021-04-10T07:24:47Z dpk: almost all of them, in fact. we only did red and tangerine so far, although afaik jcowan is hoping to get through two colours this year 2021-04-10T07:25:11Z DanklyTuned joined #scheme 2021-04-10T07:27:51Z tophullyte quit (Ping timeout: 245 seconds) 2021-04-10T07:33:44Z midow joined #scheme 2021-04-10T08:07:33Z aeth quit (Ping timeout: 260 seconds) 2021-04-10T08:07:42Z hendursaga joined #scheme 2021-04-10T08:07:51Z amirouche is grooming a SRFI-167 next episode... 2021-04-10T08:09:11Z aeth joined #scheme 2021-04-10T08:09:57Z hendursa1 quit (Ping timeout: 240 seconds) 2021-04-10T08:42:17Z amirouche: anyone familiar with save points and autonomous transaction (Oracle)? Can tell me how those are useful compared to restarting the whole transaction? 2021-04-10T08:42:43Z clog quit (Ping timeout: 276 seconds) 2021-04-10T09:02:58Z nly quit (Ping timeout: 240 seconds) 2021-04-10T09:07:34Z s-video quit (Ping timeout: 268 seconds) 2021-04-10T09:10:01Z Blkt quit (Ping timeout: 276 seconds) 2021-04-10T09:11:11Z Blkt joined #scheme 2021-04-10T09:15:08Z badkins joined #scheme 2021-04-10T09:19:53Z badkins quit (Ping timeout: 260 seconds) 2021-04-10T09:21:36Z civodul joined #scheme 2021-04-10T09:28:54Z andrei-n joined #scheme 2021-04-10T09:38:31Z amirouche: as usual with big vendors, #postgresql is not helpful. 2021-04-10T09:38:50Z amirouche: I got: "if you need it, you will know it"... 2021-04-10T09:44:06Z supercoven joined #scheme 2021-04-10T10:12:59Z DanklyTuned quit (Quit: nyaa~) 2021-04-10T10:20:47Z logand: amirouche: other databases have safepoints too, see https://www.postgresql.org/docs/9.3/sql-savepoint.html safepoints are useful for similar reasons why try catch are useful instead of restarting the whole program 2021-04-10T10:35:17Z amirouche: ty 2021-04-10T10:40:13Z lritter joined #scheme 2021-04-10T10:41:00Z amirouche: hence they are a way to handle errors inside transactions. 2021-04-10T10:49:47Z lockywolf: how do I make a string of undetermined length in chibi-ffi? 2021-04-10T10:50:14Z lockywolf: or, rather, a bytevector of undetermined length 2021-04-10T10:50:48Z lockywolf: I want to wrap around lgetxattr, which writes up to n bytes into a buffer, so I need to prepare a buffer for it. 2021-04-10T10:51:01Z lockywolf: but the size of the buffer is only known in runtime 2021-04-10T11:13:55Z amirouche: with iconv, that produce a bytevector of undermined length, you pass a bytevector with length N, then iconv will return an error if the bytevector is not big enough. So that calls to iconv are wrapped in a loop such as (let loop ((N 42)) (let (bv (make-bytevector N))) (unless (iconv-error? (iconv bv)) (loop (fx* N 2))))) 2021-04-10T11:13:57Z amirouche: HTH 2021-04-10T11:13:59Z vv8 quit (Ping timeout: 268 seconds) 2021-04-10T11:14:16Z amirouche: s/unless/when/ 2021-04-10T11:15:05Z amirouche: Another way, is to pass a double pointer, but then the bytevector is allocated by C side, and you will to convert the memory region to a bytevector. 2021-04-10T11:15:30Z amirouche: you will +need+ to convert 2021-04-10T11:16:05Z badkins joined #scheme 2021-04-10T11:17:42Z amirouche: Otherwise said, you can not produce a memory region or bytevector or string of undetermined length. 2021-04-10T11:20:31Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T11:20:39Z amirouche: lockywolf: if you pass size=0 to lgetxattr, it will "return the current size of the named extended attribute". Last paragraph of the DESCRIPTION, in man lgetxattr. 2021-04-10T11:23:27Z lockywolf: My question is about how to use this obtained size on the chibi-ffi language 2021-04-10T11:26:27Z vv8 joined #scheme 2021-04-10T11:30:31Z dpk: iconv is a bad API, usually implemented badly. (its UTF-8 decoding in glibc is among the slower implementations IIRC) 2021-04-10T11:31:41Z dpk: (http://bjoern.hoehrmann.de/utf-8/decoder/dfa/#performance) 2021-04-10T11:53:20Z amirouche looking 2021-04-10T11:56:35Z amirouche: great reference! 2021-04-10T11:57:38Z amirouche: fwiw, I used to use iconv to remove diacritics, but now or in the future, I will use a table since I need to transcribe everything to ascii. 2021-04-10T12:47:45Z badkins joined #scheme 2021-04-10T12:49:47Z badkins quit (Remote host closed the connection) 2021-04-10T12:49:57Z badkins joined #scheme 2021-04-10T12:52:21Z badkins quit (Remote host closed the connection) 2021-04-10T12:52:53Z badkins joined #scheme 2021-04-10T13:01:48Z lockywolf: okay, (independentresearch xattr) has a function to get an xattr or #f if there is no such xattr 2021-04-10T13:02:09Z lockywolf: The documentation is wonderfully lightweight: http://snow-fort.org/s/gmail.com/lockywolf/independentresearch/xattr/0.1/index.html 2021-04-10T13:02:53Z lockywolf: also it is probably leaking memory 2021-04-10T13:08:02Z lockywolf: indeed, if not spawning a process per xattr call is 10 times faster 2021-04-10T13:08:12Z lockywolf: I am very pleased with myself. 2021-04-10T13:08:19Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T13:20:39Z mmmattyx joined #scheme 2021-04-10T13:35:07Z wklew joined #scheme 2021-04-10T13:42:25Z badkins joined #scheme 2021-04-10T13:44:33Z krjli joined #scheme 2021-04-10T13:47:01Z badkins quit (Ping timeout: 265 seconds) 2021-04-10T13:48:25Z gproto23 joined #scheme 2021-04-10T14:06:41Z notzmv quit (Ping timeout: 240 seconds) 2021-04-10T14:15:57Z badkins joined #scheme 2021-04-10T14:20:36Z badkins quit (Ping timeout: 260 seconds) 2021-04-10T14:24:08Z skapata joined #scheme 2021-04-10T14:40:20Z sdu quit (Remote host closed the connection) 2021-04-10T14:49:18Z acarrico joined #scheme 2021-04-10T14:51:27Z klovett quit (Remote host closed the connection) 2021-04-10T14:51:41Z klovett joined #scheme 2021-04-10T14:52:16Z acarrico quit (Client Quit) 2021-04-10T14:55:44Z TCZ joined #scheme 2021-04-10T15:04:21Z amirouche: as usual nothing goes according to plan 2021-04-10T15:04:25Z amirouche reading about io_uring 2021-04-10T15:22:29Z sdu joined #scheme 2021-04-10T15:42:03Z aeth quit (Ping timeout: 265 seconds) 2021-04-10T15:43:35Z aeth joined #scheme 2021-04-10T15:44:08Z lockywolf: nothing, that's true 2021-04-10T15:44:38Z jgart joined #scheme 2021-04-10T15:46:29Z jgart left #scheme 2021-04-10T15:55:11Z aeth_ joined #scheme 2021-04-10T15:57:38Z aeth quit (Ping timeout: 240 seconds) 2021-04-10T15:57:51Z aeth_ is now known as aeth 2021-04-10T15:59:01Z notzmv joined #scheme 2021-04-10T16:02:13Z aeth_ joined #scheme 2021-04-10T16:02:17Z aeth quit (Disconnected by services) 2021-04-10T16:02:22Z aeth_ is now known as aeth 2021-04-10T16:12:09Z TCZ quit (Quit: Do nothing unless you must, and when you must act -- hesitate.) 2021-04-10T16:14:55Z nly joined #scheme 2021-04-10T16:15:54Z s-video joined #scheme 2021-04-10T16:16:52Z badkins joined #scheme 2021-04-10T16:19:38Z nly quit (Ping timeout: 240 seconds) 2021-04-10T16:21:08Z jcowan: amirouche, lockywolf: "Ja mach nur einen Plan / Sei nur ein großes Licht! / Und mach dann noch ’nen zweiten Plan / Gehn tun sie beide nicht." 2021-04-10T16:21:42Z badkins quit (Ping timeout: 268 seconds) 2021-04-10T16:22:21Z amirouche: io_uring notify upon completion, unlike select, epoll that notify upon readyness. It entice less syscalls. The recommend way to use it is liburing (https://github.com/axboe/liburing/) 2021-04-10T16:22:37Z amirouche: I suspect liburing does more copies, but I did not check. 2021-04-10T16:23:08Z amirouche: also io_uring works with files, not sure about buffering. 2021-04-10T16:23:13Z amirouche: it is linux only. 2021-04-10T16:28:21Z Zipheir: amirouche: "entice"? 2021-04-10T16:28:53Z amirouche: I mean, it use less syscalls (which are costly for some definition of cost). 2021-04-10T16:29:52Z amirouche: There is shared memory between the kernel and user-space that will be filled with information about complete operations. 2021-04-10T16:31:14Z amirouche: the ring in the name, comes from the datastructured stored in the shared memory. 2021-04-10T16:32:23Z amirouche: First apparition seems to be 2019, it is available in Linux 5.8+ 2021-04-10T16:32:48Z tophullyte joined #scheme 2021-04-10T16:35:41Z Zipheir: amirouche: Maybe "entail" is the word you want. 2021-04-10T16:36:11Z Zipheir: Wow, very recent Linux feature, then. 2021-04-10T16:36:53Z andrei-n quit (Read error: Connection reset by peer) 2021-04-10T16:38:40Z andrei-n joined #scheme 2021-04-10T16:38:57Z gproto23 quit (Quit: Leaving) 2021-04-10T16:39:53Z bitmapper joined #scheme 2021-04-10T16:40:16Z amirouche: yes, that's why I put it aside until now. Also, not all file operations are available I read ftruncate can not be done async. 2021-04-10T16:44:53Z amirouche: Also, I believe a Scheme database library (!) that offers a continuation-based interface (!) will have less chance to grow interest. In turn, that is yet another reason to make fast call/cc or delimited continuation to implement non-colored async. 2021-04-10T16:49:20Z amirouche: Tho, I am not sure as of yet, and I will prolly never know, whether callbacks is really the GOTO of 2000s. I mean, I do not have enough experience with continuation-based code. I hope it is not a giant mistake inflicted upon us because... JavaScript. 2021-04-10T16:50:18Z amirouche: The only argument I read is: callbacks makes code difficult to read, which in fact is: it does not look like the rest of the code, which is imo not a good argument. 2021-04-10T16:50:32Z amirouche: Maybe, the new "effect" thing will shed some light. 2021-04-10T17:00:25Z aeth quit (Ping timeout: 252 seconds) 2021-04-10T17:00:48Z aeth joined #scheme 2021-04-10T17:02:48Z aeth_ joined #scheme 2021-04-10T17:05:40Z dieggsy: argh, i've been programming in ocaml so i keep adding `;;` to the end of my expressions in the repl loll 2021-04-10T17:05:55Z aeth quit (Ping timeout: 252 seconds) 2021-04-10T17:06:31Z aeth_ is now known as aeth 2021-04-10T17:12:27Z badkins joined #scheme 2021-04-10T17:13:31Z amirouche: dieggsy: what are effects? 2021-04-10T17:14:14Z dieggsy: amirouche: none at all, ;; is a comment in scheme. but doing ocaml for the past few days gave me a muscle memory for it 2021-04-10T17:14:57Z dieggsy: it's just annoying for my hand to automatically go ;; almost involuntarily heh 2021-04-10T17:16:55Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T17:18:40Z s-video quit (Ping timeout: 258 seconds) 2021-04-10T17:30:27Z clog joined #scheme 2021-04-10T17:37:26Z aeth quit (Ping timeout: 240 seconds) 2021-04-10T17:39:29Z aeth joined #scheme 2021-04-10T17:44:01Z badkins joined #scheme 2021-04-10T17:50:08Z badkins quit (Ping timeout: 246 seconds) 2021-04-10T17:53:10Z badkins joined #scheme 2021-04-10T17:55:23Z tophullyte quit (*.net *.split) 2021-04-10T17:55:23Z logand quit (*.net *.split) 2021-04-10T17:55:24Z bandali quit (*.net *.split) 2021-04-10T17:55:24Z codingquark quit (*.net *.split) 2021-04-10T17:55:24Z dan64- quit (*.net *.split) 2021-04-10T17:55:24Z mason quit (*.net *.split) 2021-04-10T17:55:24Z lad quit (*.net *.split) 2021-04-10T17:55:24Z pounce quit (*.net *.split) 2021-04-10T17:55:24Z remexre quit (*.net *.split) 2021-04-10T17:55:24Z lavaflow quit (*.net *.split) 2021-04-10T17:55:24Z topoi quit (*.net *.split) 2021-04-10T17:55:24Z eagleflo quit (*.net *.split) 2021-04-10T17:56:21Z tophullyte joined #scheme 2021-04-10T17:56:21Z logand joined #scheme 2021-04-10T17:56:21Z bandali joined #scheme 2021-04-10T17:56:21Z codingquark joined #scheme 2021-04-10T17:56:21Z dan64- joined #scheme 2021-04-10T17:56:21Z mason joined #scheme 2021-04-10T17:56:21Z lad joined #scheme 2021-04-10T17:56:21Z pounce joined #scheme 2021-04-10T17:56:21Z eagleflo joined #scheme 2021-04-10T17:56:21Z remexre joined #scheme 2021-04-10T17:56:21Z topoi joined #scheme 2021-04-10T17:56:21Z lavaflow joined #scheme 2021-04-10T17:57:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-10T17:57:43Z nmeum quit (Remote host closed the connection) 2021-04-10T17:58:38Z nmeum joined #scheme 2021-04-10T18:22:55Z gravicappa quit (Ping timeout: 252 seconds) 2021-04-10T18:22:58Z aeth quit (Ping timeout: 240 seconds) 2021-04-10T18:23:54Z ChoHag: Muscle memory has me pressing escape after I finish writing in any sort of text-editing app. 2021-04-10T18:24:52Z ChoHag: Better to have a habit of appending line endings than forgetting them though I think. 2021-04-10T18:25:09Z aeth joined #scheme 2021-04-10T18:26:26Z notzmv quit (Ping timeout: 240 seconds) 2021-04-10T18:33:17Z badkins joined #scheme 2021-04-10T18:38:01Z badkins quit (Ping timeout: 260 seconds) 2021-04-10T18:39:01Z wklew quit (Ping timeout: 260 seconds) 2021-04-10T18:40:34Z jao joined #scheme 2021-04-10T18:53:35Z notzmv joined #scheme 2021-04-10T19:04:19Z s-video joined #scheme 2021-04-10T19:07:25Z badkins joined #scheme 2021-04-10T19:09:04Z lritter quit (Remote host closed the connection) 2021-04-10T19:10:02Z terpri quit (Remote host closed the connection) 2021-04-10T19:10:20Z terpri joined #scheme 2021-04-10T19:13:11Z badkins quit (Ping timeout: 240 seconds) 2021-04-10T19:15:03Z em: I'm trying to remember the name of something. Something to do with functions. It reminded me of closures but not really. It was like you have a function and you don't need to use one of the parameters because its picking that up ambiently or something. 2021-04-10T19:15:14Z em: I keep wanting to say 'kerning' but that's not the word 2021-04-10T19:15:21Z em: can you think of the word I might be thinking of? 2021-04-10T19:18:45Z ChoHag: Currying? 2021-04-10T19:19:37Z ChoHag: Do another! 2021-04-10T19:20:30Z em: Currying that's it! 2021-04-10T19:20:35Z em: good work! 2021-04-10T19:20:41Z ChoHag: Also: Writing tests is boring and documenting them is a side-quest Dante missed. 2021-04-10T19:20:45Z em: that's the word I was trying to think. That's excelent. 2021-04-10T19:20:50Z ChoHag: Happy to help 2021-04-10T19:21:10Z em: What actually is currying? How would you describe that? I don't think my description was accurate. 2021-04-10T19:21:49Z ChoHag: A wrapper to a function which provides one (or more) of its arguments so the caller doesn't need to/can't. 2021-04-10T19:22:14Z DHARMAKAYA joined #scheme 2021-04-10T19:22:16Z marusich joined #scheme 2021-04-10T19:23:40Z Aquazi quit (Quit: Connection closed for inactivity) 2021-04-10T19:24:21Z em: Yeah I think I became confused about the difference betwen 'closures', 'hoisting', and 'currying.' 2021-04-10T19:26:02Z ChoHag: Hoisting sounds nautical. 2021-04-10T19:26:22Z ChoHag: wtf's that? 2021-04-10T19:29:43Z DHARMAKAYA quit (Read error: Connection reset by peer) 2021-04-10T19:44:07Z Zipheir: Currying is a way of eliminating the notion of a multiple-argument function. 2021-04-10T19:44:10Z DHARMAKAYA joined #scheme 2021-04-10T19:48:13Z Zipheir: And hoisting: https://en.wikipedia.org/wiki/Loop-invariant_code_motion 2021-04-10T19:48:42Z Zipheir: I'd like to see a more functional way of describing that optimization. 2021-04-10T19:55:31Z ChoHag: Oh optimising. 2021-04-10T20:02:47Z tophullyte quit (Ping timeout: 246 seconds) 2021-04-10T20:03:33Z badkins joined #scheme 2021-04-10T20:06:11Z andrei-n quit (Quit: Leaving) 2021-04-10T20:06:35Z DHARMAKAYA quit (Read error: Connection reset by peer) 2021-04-10T20:08:22Z badkins quit (Ping timeout: 265 seconds) 2021-04-10T20:08:38Z Khisanth quit (Ping timeout: 268 seconds) 2021-04-10T20:12:12Z DHARMAKAYA joined #scheme 2021-04-10T20:16:55Z s-video quit (Ping timeout: 258 seconds) 2021-04-10T20:17:47Z jacks2 joined #scheme 2021-04-10T20:20:50Z DHARMAKAYA quit (Read error: Connection reset by peer) 2021-04-10T20:21:19Z Khisanth joined #scheme 2021-04-10T20:36:15Z ChoHag: Does anyone else manage to get emacs to occasionally segfault? 2021-04-10T20:37:00Z ChoHag tries to remember what he was doing. 2021-04-10T20:38:42Z wasamasa: what OS? 2021-04-10T20:39:10Z amirouche: yes with ubuntu (installed with apt) 2021-04-10T20:39:19Z amirouche: it happens with big files. 2021-04-10T20:39:30Z amirouche: and sometime because I type to fast :d 2021-04-10T20:41:32Z amirouche: it as if the a jammed mechanical keyboard. 2021-04-10T20:45:36Z supercoven quit (Ping timeout: 260 seconds) 2021-04-10T20:46:07Z logand: it's not difficult to crash emacs 2021-04-10T20:46:49Z logand: e.g. C-g in the wrong moment 2021-04-10T20:47:22Z amirouche: that is it. 2021-04-10T20:47:52Z amirouche: it does not help that I bound C-g to execute M-x compile 2021-04-10T20:48:05Z amirouche: I mean C-x C-g 2021-04-10T20:48:37Z badkins joined #scheme 2021-04-10T20:53:04Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T20:53:43Z ChoHag: openbsd. 2021-04-10T20:55:35Z tatsumaru joined #scheme 2021-04-10T20:56:21Z tatsumaru: has anyone noticed that there's so many wonderful computer science concepts that can successfully be applied to improving organizational practices like project management and company structure. 2021-04-10T20:57:00Z tatsumaru: literally things that we are barely starting to understand at the organizational level have existed in CS since the 60s probably. 2021-04-10T20:58:05Z tatsumaru: i bet great developers have the potential to be great COOs too. 2021-04-10T21:00:08Z ChoHag: I know that most of the good idea I have were already had. Mostly before I was born. 2021-04-10T21:00:38Z ChoHag: And almost none of them have been implemented. 2021-04-10T21:01:19Z tatsumaru: there have been great ideas since forever. just read a sci-fi book and there are tons. execution tends to be more valuable than ideation. 2021-04-10T21:02:53Z tatsumaru: so basically even if you weren't the first to come with some idea, if you implement it for the first time successfully you will certain leave an awesome legacy 2021-04-10T21:03:35Z aeth_ joined #scheme 2021-04-10T21:03:40Z ChoHag: Well yeah the idea of time travel has been come up with a lot. 2021-04-10T21:03:41Z aeth quit (Ping timeout: 246 seconds) 2021-04-10T21:04:07Z aeth_ is now known as aeth 2021-04-10T21:04:24Z tatsumaru: is that something that you would like to do? 2021-04-10T21:04:32Z ChoHag: But then there are ideas like lisp which some nutter writes an implementation of on a drunk weekend bender because his mate came up with the idea and made a paper out of it. 2021-04-10T21:05:02Z tatsumaru: well Oracle was created pretty much based on a paper IBM ignored. 2021-04-10T21:05:49Z ChoHag: Actually I am doing it, or trying to. 2021-04-10T21:06:06Z tatsumaru: hmm, can you share details, I am curious 2021-04-10T21:07:24Z ChoHag: I'm making a lisp/scheme variant. 2021-04-10T21:07:36Z ChoHag: I've spent the past few days writing tests. 2021-04-10T21:07:56Z ChoHag: Apart from the bugs I haven't found yet, it mostly works. 2021-04-10T21:08:14Z tatsumaru: what's the value proposition? 2021-04-10T21:08:46Z ChoHag: And I hope to fully integrate in the core first-class operatives and delimited continuations. 2021-04-10T21:09:40Z ChoHag: Then out of that I have vague plans for something that's more than just a language but I need that first. 2021-04-10T21:09:48Z ChoHag: Also: vague plans. 2021-04-10T21:10:58Z ChoHag: So "doing it" in the sense of "making something that hasn't been made well yet" and hoping that a) I can make it well, and b) it does what it says on the tin. 2021-04-10T21:11:14Z tatsumaru: cool, does it solve an important problem? 2021-04-10T21:11:35Z ChoHag: It gives me the programming language/environment I want. 2021-04-10T21:12:13Z ChoHag: I don't know if you'd consider that important. 2021-04-10T21:12:54Z tatsumaru: it could be very important depending on why you need that environment to be the way you want it to be. 2021-04-10T21:13:25Z tatsumaru: if it's just a hobby, then it could still turn out to be important down the line 2021-04-10T21:13:36Z ChoHag: Well one of the yaks I vaguely remember trying to shave in the past is that high-level languages solve problems by denying me access to low-level constructs. 2021-04-10T21:13:36Z tatsumaru: i bet linux started that way 2021-04-10T21:13:40Z ChoHag: And I don't like that. 2021-04-10T21:14:19Z Zipheir: Well, that does give you another (large) problem to solve. 2021-04-10T21:14:26Z ChoHag: I can't remember why I wanted such low-level programming in a high-level language. 2021-04-10T21:14:55Z tatsumaru: ChoHag, what about Julia, doesn't it offer something similar to what you need? 2021-04-10T21:15:53Z ChoHag: No. 2021-04-10T21:17:17Z jacks2 quit (Quit: quit) 2021-04-10T21:17:22Z ChoHag: One of the reasons I've implemented this using literate programming is that I want to produce something that can be understood locally without having to grok the project as a whole. 2021-04-10T21:18:10Z ChoHag: There have been a lot of open sores projects over the years that I've wanted to fix something in, but the effort in locating the source of the bug far outweighed the cost of building a workaround. 2021-04-10T21:19:18Z Zipheir: The problem I see with languages blending "high-level" and "low-level" programming is that it's very difficult to provide access to one while preserving the soundness of the other. 2021-04-10T21:19:49Z ChoHag: So a major focus of what I'm doing is making something which is, and which can make things that are, understood by mere humans without having to read the entire source code of a project. 2021-04-10T21:19:54Z Zipheir: An example is C's rather broken and easily-undermined type system. 2021-04-10T21:20:03Z ChoHag: But at the same time which doesn't require developers to "write documentation". 2021-04-10T21:20:43Z badkins joined #scheme 2021-04-10T21:20:46Z tatsumaru: is it possible to write something in two languages rather than need one languages that has both powers? 2021-04-10T21:20:54Z tatsumaru: one language* 2021-04-10T21:21:12Z ChoHag: Shto? 2021-04-10T21:21:31Z ChoHag: Ya ne rozumiyu ti. 2021-04-10T21:21:58Z Zipheir: Heh. 2021-04-10T21:22:17Z Zipheir: tatsumaru: How so? 2021-04-10T21:22:50Z ChoHag: (Sorry to anybody who actually knows Russian or any Slavic language) 2021-04-10T21:23:05Z tatsumaru: like myself for example 2021-04-10T21:23:39Z ChoHag: Blyat. 2021-04-10T21:23:54Z tatsumaru: that everybody knows nowadays 2021-04-10T21:23:56Z wklew joined #scheme 2021-04-10T21:24:43Z ChoHag: Mat hui? 2021-04-10T21:24:44Z tatsumaru: so I am wondering if you have a project that requires low-level and high-level programming if you can do one part in a low-level language and another in a high-level language. 2021-04-10T21:25:08Z tatsumaru: stop swearing bro 2021-04-10T21:25:24Z ChoHag: Sorry I'm trying to learn Ukrainian on the side. 2021-04-10T21:26:07Z tatsumaru: did you find Mrs. ChoHag in Ukraine? 2021-04-10T21:26:20Z aeth: It's called scripting... and it's more common than doing everything in one language... generally something like e.g. C++/Lua. 2021-04-10T21:26:21Z ChoHag: Again another reason for handicapping myself like this - I want to see what writing two (computer(ish)) languages at once is like. 2021-04-10T21:26:41Z aeth: The problem is that you wind up with... C++. And nobody knows C++. You can claim to know it, but you don't. 2021-04-10T21:27:01Z ChoHag: Because I want to be able to write C/assembler in any high level language I care to choose. 2021-04-10T21:27:06Z tatsumaru: aeth, why because it's too complex or too unpredictable? 2021-04-10T21:27:08Z badkins quit (Ping timeout: 252 seconds) 2021-04-10T21:27:12Z Zipheir: tatsumaru: The important thing in that case is to have good abstractions. 2021-04-10T21:27:12Z ChoHag: And god damn it I want it. 2021-04-10T21:27:16Z aeth: You wind up with an ultra-complex, fast, slow-compiling language paired with an easy-to-embed, very minimal, slow-to-run interpreter when you use the two language approach. 2021-04-10T21:27:39Z Zipheir: ChoHag: How do you do that while preserving the semantics of your high-level language? 2021-04-10T21:27:47Z ChoHag: I'm not sure yet. 2021-04-10T21:28:02Z tatsumaru: aeth can't you do it in Fortran/Julia? 2021-04-10T21:28:18Z aeth: Another annoying thing is that there are syntactic incompatibilities as well as other subtle incompatibilities (such as e.g. slightly different infix precedence) so... you frequently make simple mistakes going back and forth all day. 2021-04-10T21:28:20Z ChoHag: Also: You categorically cannot. 2021-04-10T21:28:41Z notzmv quit (Ping timeout: 240 seconds) 2021-04-10T21:28:59Z ChoHag: The writer of low-level code embedded in a high level language necessarily has to work within the confines of how the high-level language constrains the computing environment. 2021-04-10T21:29:23Z ChoHag: Otherwise: Undefined behaviour. 2021-04-10T21:29:34Z aeth: tatsumaru: Different languages have different levels of pain as far as embedding goes. For instance, Python's a generally nice scripting language, but it's impossible to sandbox, so many people who wanted to use Python wind up using Lua instead for that task. 2021-04-10T21:29:57Z tatsumaru: aeth, this sounds like a business opportunity, there should be something that helps developers write in multiple languages at the same time to develop economies of scope and some sorts of interdisciplinary effectiveness 2021-04-10T21:30:00Z aeth: (or writing their own Python-like language, e.g. Godot) 2021-04-10T21:30:34Z aeth: tatsumaru: Yes. It's an absolutely massive business opportunity. Microsoft realized this and came up with dot-net. 2021-04-10T21:30:53Z ChoHag: As far as I'm concerned a programming language offers the programmer a whole bunch of guarantees *at its level*. If the programmer wishes to descend below that level he'd better know what the fuck he's doing. 2021-04-10T21:30:56Z aeth: tatsumaru: But most people on .NET just wind up using C# anyway because that's the first class citizen there. 2021-04-10T21:31:32Z ChoHag: I just want the language to enable it. 2021-04-10T21:31:57Z aeth: tatsumaru: Your idea is over 21 years too late. https://en.wikipedia.org/wiki/.NET_Framework#History 2021-04-10T21:32:17Z aeth: I mean, it doesn't mean that you can't do it better, but by the time Microsoft is doing it, it's not new. 2021-04-10T21:32:48Z tatsumaru: rockets aren't new either, spacex crushed it because everyone else was coasting though 2021-04-10T21:32:55Z Zipheir: Use better abstractions and communicate with protocols, not frameworks! 2021-04-10T21:32:57Z aeth: You can use IronPython, C#, and F# in the same project... 2021-04-10T21:33:07Z dpk: and Java came before .net! 2021-04-10T21:33:17Z dpk: .net was just MS's attempt to steal Java's thunder 2021-04-10T21:33:28Z tatsumaru: aeth, do you mean that the supported languages are not that much or great? 2021-04-10T21:33:34Z ChoHag: When it comes to multi-languages, ignore python. 2021-04-10T21:33:43Z aeth: dpk: Right, but Java as a popular multilingual platform kind of came after .NET, even though C# is basically just a Java knockoff, Java being the hot language at the time. 2021-04-10T21:34:00Z aeth: s/Java as a/JVM as a/ 2021-04-10T21:34:15Z ChoHag: Python is lauded by the sort of people who'd have stopped at learning BASIC back when it was the state of the art. 2021-04-10T21:34:32Z aeth: dpk: So I'd actually have to give .NET the points, not the JVM 2021-04-10T21:34:39Z ChoHag: (Note "lauded"; python is put up with by a lot more types) 2021-04-10T21:34:50Z tatsumaru: ChoHag python was lauded by Paul Graham too 2021-04-10T21:34:58Z ChoHag: Well he's a twat. 2021-04-10T21:35:02Z Zipheir: Hah. 2021-04-10T21:35:12Z tatsumaru: ChoHag you don't like PG? 2021-04-10T21:35:24Z ChoHag: I didn't say that. 2021-04-10T21:35:37Z ChoHag: He is a twat though. 2021-04-10T21:35:42Z aeth: dpk: You'll find that Java and C# just copy each other, forever, and sometimes the latter gets there first. 2021-04-10T21:35:43Z amirouche: PG does get a lot of free press around anyway. 2021-04-10T21:35:55Z dpk: heh 2021-04-10T21:36:14Z ChoHag: aeth: Hang on! Sometimes it's the former! 2021-04-10T21:36:25Z dpk: i'm not really interested in either world (though slightly moreso in the JVM since it has Clojure, but even so not really), but fun to know 2021-04-10T21:36:48Z dpk: the multi-language VM i'm most interested in is probably Erlang's, which now has a bunch of languages targetting it 2021-04-10T21:37:07Z tatsumaru: dpk you mean Beam? 2021-04-10T21:37:14Z dpk: yeah 2021-04-10T21:37:15Z aeth: I'm just saying, the JVM having more than one big language was a thing practically 10 years after .NET was trying to be multilingual with C# and VB.net (everyone just used C# over VB.net, though). 2021-04-10T21:37:45Z aeth: Yeah, JVM probably has the languages that interest us. Does .NET even have a notable Scheme? JVM has kawa 2021-04-10T21:37:45Z tatsumaru: aeth, sounds like the options on the .net platform were just lame 2021-04-10T21:37:59Z ChoHag: I'm wondering whether to make the JVM a possible backend alternate to C, or link to java code at runtime. 2021-04-10T21:38:14Z tatsumaru: someone should definitely be able to do this better 2021-04-10T21:38:42Z aeth: and, yeah, JVM is designed for Java and .NET is designed for C# so if you're more interested in Lisps/Schemes, then you can definitely build a better platform... for Lisps/Schemes 2021-04-10T21:39:13Z aeth: a lot of the more annoying parts of Clojure (at least for those of us who are used to other Lisps) are blamed on the JVM, whether that's true or not 2021-04-10T21:39:17Z ChoHag: There's also the question of whether a language's runtime should operate in the address space of anothers'. 2021-04-10T21:39:39Z ChoHag: If not, well the kernel already provides most of the primitives you need. 2021-04-10T21:40:28Z aeth: well, we were talking about combining several languages in one rather than having the systems/scripting division (most commonly C++/Lua or C++/JavaScript) 2021-04-10T21:40:48Z ChoHag: That doesn't necessarily mean one process though. 2021-04-10T21:41:16Z ChoHag: Closures and continuations are first-class in scheme, so it can refer to other processes with ease. 2021-04-10T21:41:19Z aeth: well, browsers (the C++/JavaScript) I'm talking about often aren't one process anymore 2021-04-10T21:42:39Z aeth: ChoHag: That assumes that the continuations will be first-class in the host platform, rather than implemented for the guest Scheme 2021-04-10T21:42:56Z aeth: Possible if it's literally written in Scheme, but otherwise, unlikely 2021-04-10T21:44:18Z ChoHag: Usually the necessary constructs can be emulated while the implementations catch up. 2021-04-10T21:45:00Z ChoHag: Otherwise browsers are hardly the pinnacle of any achievement. 2021-04-10T21:45:37Z aeth: The achievement of the browser is in the size and scope. 2021-04-10T21:45:58Z aeth: Especially post-HTML5. Just