2014-11-20T00:01:33Z cdidd joined #scheme 2014-11-20T00:08:27Z davexunit joined #scheme 2014-11-20T00:10:47Z usrj quit (Ping timeout: 264 seconds) 2014-11-20T00:13:37Z davexunit quit (Ping timeout: 272 seconds) 2014-11-20T00:15:06Z davexunit joined #scheme 2014-11-20T00:18:27Z hypermagic: here is my concept: simple racket / scheme / list wrapper script in bash v. 0.1 http://pastebin.com/nRrikTbr 2014-11-20T00:25:46Z hypermagic: new version passes all arguments simple racket / scheme / list wrapper script in bash v. 0.2 http://pastebin.com/YXy7hXuc 2014-11-20T00:27:30Z didi joined #scheme 2014-11-20T00:34:11Z adu joined #scheme 2014-11-20T00:35:23Z cmatei quit (Ping timeout: 264 seconds) 2014-11-20T00:37:15Z Riastradh joined #scheme 2014-11-20T00:41:09Z BitPuffin joined #scheme 2014-11-20T00:47:54Z bjz_ quit (Ping timeout: 255 seconds) 2014-11-20T00:50:25Z bjz joined #scheme 2014-11-20T00:52:54Z Bahman quit (Quit: Ave atque vale) 2014-11-20T00:55:06Z bjz quit (Ping timeout: 256 seconds) 2014-11-20T00:58:17Z offby1: technomancy: you're really tempted by prescheme? 2014-11-20T00:58:28Z offby1: technomancy: you're not bothered by it laying untouched for decades? 2014-11-20T00:58:32Z technomancy: offby1: only out of ignorance 2014-11-20T00:58:41Z technomancy: offby1: classics don't go stale, man 2014-11-20T00:58:44Z offby1 rubs chin 2014-11-20T00:59:05Z technomancy: I'd be a lot more tempted if it shipped with a "hello-world.scm" example instead of only a VM 2014-11-20T00:59:51Z offby1: I seem to recall scheme48 (which uses prescheme) was run on robots and suchlike, waaay back when. 2014-11-20T01:00:03Z technomancy: yeah, actually older is better for me 2014-11-20T01:00:15Z offby1: So my hunch is: you probably could indeed get it working on your so-called "microcontroller", which I'll wager has 100x more memory than our granddaddies needed 2014-11-20T01:00:16Z technomancy: more likely that it was designed with extremely limited systems in mind =) 2014-11-20T01:01:40Z ijp: rudybot: back in my day, etc. etc. 2014-11-20T01:01:41Z rudybot: ijp: Today's the day the teddy bears have their picnic 2014-11-20T01:01:57Z ijp: and I don't have an invite :( 2014-11-20T01:02:14Z technomancy: given the abundance of scheme implementations, it's astonishing how hard it is to find something that's actually extremely-low-overhead 2014-11-20T01:02:35Z offby1: well, garbage colletion. 2014-11-20T01:02:48Z offby1 hunts around for that missing "c" 2014-11-20T01:02:56Z Riastradh: It got GC'd, sorry. 2014-11-20T01:02:56Z offby1: nuts, it rolled under the dresser 2014-11-20T01:03:06Z offby1: Riastradh: you must have got an alias 2014-11-20T01:03:16Z offby1: oh look, a little guy is cleaning out under my dresser! How nice 2014-11-20T01:03:21Z offby1: dust bunnies &c 2014-11-20T01:03:30Z technomancy: actually implementing a scheme is a use case with a lot of overlap with what I'm looking for 2014-11-20T01:03:50Z offby1: "If there were a little guy running around inside the computer executing our programs, he would probably have as long and plaintive a tale to tell about his job as a federal government employee." -- pg 2014-11-20T01:07:35Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T01:08:22Z pygospa quit (Ping timeout: 240 seconds) 2014-11-20T01:09:13Z hypermagic: damn we don't need the wrapper bashscript to "execute" a racket file 2014-11-20T01:09:26Z hypermagic: http://docs.racket-lang.org/guide/scripts.html 2014-11-20T01:10:26Z pygospa joined #scheme 2014-11-20T01:12:01Z jumblerg joined #scheme 2014-11-20T01:14:28Z adu quit (Quit: adu) 2014-11-20T01:15:34Z jumblerg quit (Client Quit) 2014-11-20T01:17:35Z adu joined #scheme 2014-11-20T01:22:36Z ijp quit (Quit: washing the unwashed masses) 2014-11-20T01:25:32Z Lingo______ quit (Quit: Be back later ...) 2014-11-20T01:26:07Z Lingo______ joined #scheme 2014-11-20T01:31:05Z Lingo______ quit (Ping timeout: 264 seconds) 2014-11-20T01:33:36Z kongtomorrow quit 2014-11-20T01:37:53Z Lingo______ joined #scheme 2014-11-20T01:42:01Z Riastradh quit (Ping timeout: 250 seconds) 2014-11-20T01:47:08Z alexey joined #scheme 2014-11-20T01:49:05Z didi quit (Quit: you can't /fire me, I /quit) 2014-11-20T01:51:38Z alexey quit (Ping timeout: 250 seconds) 2014-11-20T01:53:38Z didi joined #scheme 2014-11-20T01:55:59Z adu quit (Quit: adu) 2014-11-20T01:57:09Z cmatei joined #scheme 2014-11-20T02:04:20Z ericmathison joined #scheme 2014-11-20T02:05:08Z adu joined #scheme 2014-11-20T02:11:39Z Gyps joined #scheme 2014-11-20T02:11:57Z hiyosi quit (Ping timeout: 240 seconds) 2014-11-20T02:15:29Z macdice`` quit (Ping timeout: 264 seconds) 2014-11-20T02:24:29Z ananna quit (Remote host closed the connection) 2014-11-20T02:37:49Z tobik quit (Ping timeout: 258 seconds) 2014-11-20T02:38:59Z tobik joined #scheme 2014-11-20T02:43:12Z BitPuffin quit (Ping timeout: 245 seconds) 2014-11-20T02:43:23Z ananna joined #scheme 2014-11-20T02:45:55Z adu: hypermagic: damn 2014-11-20T02:46:34Z hypermagic: you didn't know this either ? :) 2014-11-20T02:46:37Z didi left #scheme 2014-11-20T02:46:51Z hypermagic: it is so comfortable to simply ener on a script and run 2014-11-20T02:46:57Z hypermagic: enter 2014-11-20T02:47:12Z jumblerg joined #scheme 2014-11-20T02:50:03Z derek_c quit (Ping timeout: 272 seconds) 2014-11-20T02:51:06Z derek_c joined #scheme 2014-11-20T02:56:49Z robot-beethoven joined #scheme 2014-11-20T02:57:22Z derek_c quit (Ping timeout: 245 seconds) 2014-11-20T02:57:42Z davexunit quit (Quit: Later) 2014-11-20T03:03:24Z asumu: technomancy: re: so little it could run on a microcontroller https://github.com/stamourv/picobit (from our stamourv) 2014-11-20T03:04:07Z _5kg quit (Remote host closed the connection) 2014-11-20T03:08:52Z joneshf-laptop joined #scheme 2014-11-20T03:09:04Z hiyosi joined #scheme 2014-11-20T03:10:15Z derek_c joined #scheme 2014-11-20T03:13:42Z hiyosi quit (Ping timeout: 255 seconds) 2014-11-20T03:22:57Z enitiz joined #scheme 2014-11-20T03:23:57Z ericmathison quit (Quit: leaving) 2014-11-20T03:33:45Z derek_c quit (Ping timeout: 272 seconds) 2014-11-20T03:35:13Z mrowe is now known as mrowe_away 2014-11-20T03:35:43Z mrowe_away is now known as mrowe 2014-11-20T03:35:56Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T03:38:57Z derek_c joined #scheme 2014-11-20T03:39:36Z jumblerg joined #scheme 2014-11-20T03:48:11Z alexey joined #scheme 2014-11-20T03:52:34Z alexey quit (Ping timeout: 258 seconds) 2014-11-20T03:55:51Z kongtomorrow joined #scheme 2014-11-20T04:14:23Z derek_c quit (Ping timeout: 264 seconds) 2014-11-20T04:16:35Z daviid joined #scheme 2014-11-20T04:17:32Z psy_ quit (Read error: Connection reset by peer) 2014-11-20T04:18:26Z psy_ joined #scheme 2014-11-20T04:19:18Z psy__ joined #scheme 2014-11-20T04:20:29Z psy__ quit (Read error: Connection reset by peer) 2014-11-20T04:23:58Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T04:30:35Z _5kg joined #scheme 2014-11-20T04:43:45Z hypermagic: did you read this yet ? http://www.ccs.neu.edu/home/matthias/HtDP2e/ 2014-11-20T04:43:50Z derek_c joined #scheme 2014-11-20T04:47:25Z psy_ quit (Read error: No route to host) 2014-11-20T04:48:19Z psy_ joined #scheme 2014-11-20T04:51:39Z MichaelRaskin quit (Quit: MichaelRaskin) 2014-11-20T04:52:47Z kazimir42 joined #scheme 2014-11-20T04:57:50Z hiyosi joined #scheme 2014-11-20T05:00:48Z enitiz quit (Remote host closed the connection) 2014-11-20T05:01:19Z technomancy: asumu: oh wow, that looks perfect 2014-11-20T05:01:20Z technomancy: thanks 2014-11-20T05:02:43Z hiyosi quit (Ping timeout: 258 seconds) 2014-11-20T05:03:43Z technomancy: asumu: oh, unfortunately I need something for AVR rather than ARM 2014-11-20T05:04:09Z technomancy: I only have 2.5kb of ram, so an interpreter is out of the question 2014-11-20T05:04:24Z technomancy: with that amount of ram I can barely boot a forth 2014-11-20T05:04:30Z offby1: you need one of those guys who grew up with Z-80s 2014-11-20T05:05:17Z technomancy: I realize the word "microcontroller" covers a very wide range of capabilities =) 2014-11-20T05:05:25Z technomancy: almost as much as "microcomputer" 2014-11-20T05:06:51Z jumblerg joined #scheme 2014-11-20T05:08:26Z karswell quit (Read error: Connection reset by peer) 2014-11-20T05:08:41Z karswell joined #scheme 2014-11-20T05:10:54Z offby1: "micromanager" 2014-11-20T05:12:05Z sg2002 quit (Read error: Connection reset by peer) 2014-11-20T05:12:17Z technomancy: hehe 2014-11-20T05:17:19Z mrowe is now known as mrowe_away 2014-11-20T05:28:43Z Niac joined #scheme 2014-11-20T05:29:49Z MichaelRaskin joined #scheme 2014-11-20T05:31:14Z alezost joined #scheme 2014-11-20T05:34:09Z Guest36389 quit (Ping timeout: 258 seconds) 2014-11-20T05:45:49Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T05:48:23Z Lingo joined #scheme 2014-11-20T05:48:23Z Lingo______ quit (Read error: Connection reset by peer) 2014-11-20T05:49:00Z alexey joined #scheme 2014-11-20T05:52:27Z Vutral quit (Ping timeout: 272 seconds) 2014-11-20T05:52:29Z psy_ quit (Remote host closed the connection) 2014-11-20T05:53:49Z alexey quit (Ping timeout: 265 seconds) 2014-11-20T05:54:44Z oleo__ joined #scheme 2014-11-20T05:55:26Z oleo is now known as Guest99873 2014-11-20T05:56:28Z Guest99873 quit (Ping timeout: 250 seconds) 2014-11-20T05:58:18Z Vutral joined #scheme 2014-11-20T05:58:35Z hiyosi joined #scheme 2014-11-20T06:03:35Z hiyosi quit (Ping timeout: 264 seconds) 2014-11-20T06:06:33Z vinleod joined #scheme 2014-11-20T06:09:59Z alexey joined #scheme 2014-11-20T06:17:51Z Lingo quit (Quit: Be back later ...) 2014-11-20T06:18:24Z Lingo joined #scheme 2014-11-20T06:32:04Z kazimir42 quit (Remote host closed the connection) 2014-11-20T06:37:24Z daviid quit (Ping timeout: 258 seconds) 2014-11-20T06:43:45Z oleo__ quit (Quit: Verlassend) 2014-11-20T06:44:21Z vanila quit (Quit: Leaving) 2014-11-20T06:45:36Z henrytill quit (Quit: leaving) 2014-11-20T06:46:02Z kongtomorrow quit (Read error: Connection reset by peer) 2014-11-20T06:46:12Z kongtomo_ joined #scheme 2014-11-20T07:08:17Z cdidd quit (Ping timeout: 240 seconds) 2014-11-20T07:10:12Z Flaoer joined #scheme 2014-11-20T07:13:27Z Atro joined #scheme 2014-11-20T07:14:09Z Atropaplanta joined #scheme 2014-11-20T07:15:42Z bjz joined #scheme 2014-11-20T07:16:57Z derek_c quit (Ping timeout: 245 seconds) 2014-11-20T07:17:31Z cdidd joined #scheme 2014-11-20T07:34:05Z jeapostrophe joined #scheme 2014-11-20T07:34:05Z jeapostrophe quit (Changing host) 2014-11-20T07:34:05Z jeapostrophe joined #scheme 2014-11-20T07:37:54Z Atropaplanta quit (Ping timeout: 244 seconds) 2014-11-20T07:38:18Z Atro quit (Ping timeout: 250 seconds) 2014-11-20T07:38:18Z Flaoer quit (Ping timeout: 250 seconds) 2014-11-20T07:39:02Z frkout_ joined #scheme 2014-11-20T07:39:03Z frkout quit (Read error: Connection reset by peer) 2014-11-20T07:47:45Z hiyosi joined #scheme 2014-11-20T07:51:57Z hiyosi quit (Ping timeout: 245 seconds) 2014-11-20T07:52:31Z civodul joined #scheme 2014-11-20T07:57:57Z Vutral quit (Ping timeout: 240 seconds) 2014-11-20T08:04:49Z Vutral joined #scheme 2014-11-20T08:11:41Z macdice joined #scheme 2014-11-20T08:18:57Z ventonegro joined #scheme 2014-11-20T08:25:21Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-20T08:29:37Z stepnem joined #scheme 2014-11-20T08:45:18Z adu quit (Quit: adu) 2014-11-20T09:02:59Z redeemed joined #scheme 2014-11-20T09:13:16Z bjz_ joined #scheme 2014-11-20T09:13:59Z bjz quit (Read error: Connection reset by peer) 2014-11-20T09:21:27Z vinleod joined #scheme 2014-11-20T09:34:04Z Niac quit (Remote host closed the connection) 2014-11-20T09:35:23Z ozzloy quit (Ping timeout: 264 seconds) 2014-11-20T09:36:14Z hiyosi joined #scheme 2014-11-20T09:40:58Z hiyosi quit (Ping timeout: 256 seconds) 2014-11-20T09:46:05Z bjz_ quit (Ping timeout: 264 seconds) 2014-11-20T09:46:57Z githogori_ quit (Ping timeout: 240 seconds) 2014-11-20T09:48:24Z alexey quit (Remote host closed the connection) 2014-11-20T10:09:24Z Nshag quit (Ping timeout: 245 seconds) 2014-11-20T10:09:24Z DerGuteMoritz quit (Ping timeout: 245 seconds) 2014-11-20T10:09:46Z Nshag joined #scheme 2014-11-20T10:10:12Z vinleod quit (Quit: ["Textual IRC Client: www.textualapp.com"]) 2014-11-20T10:14:11Z vinleod joined #scheme 2014-11-20T10:17:23Z _5kg quit (Ping timeout: 264 seconds) 2014-11-20T10:18:33Z _5kg joined #scheme 2014-11-20T10:49:40Z MichaelRaskin quit (Read error: Connection reset by peer) 2014-11-20T11:01:38Z robot-beethoven quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T11:01:52Z 92AAAHCHY joined #scheme 2014-11-20T11:01:52Z Flaoer joined #scheme 2014-11-20T11:01:52Z 32NAAHLIC joined #scheme 2014-11-20T11:01:52Z Atro joined #scheme 2014-11-20T11:02:04Z Atropaplanta joined #scheme 2014-11-20T11:20:31Z bjz joined #scheme 2014-11-20T11:22:08Z hiyosi joined #scheme 2014-11-20T11:26:47Z hiyosi quit (Ping timeout: 244 seconds) 2014-11-20T11:27:50Z Atro quit (Read error: Connection reset by peer) 2014-11-20T11:27:51Z Flaoer quit (Read error: Connection reset by peer) 2014-11-20T11:27:51Z 32NAAHLIC quit (Read error: Connection reset by peer) 2014-11-20T11:28:08Z Atropaplanta quit (Read error: Connection reset by peer) 2014-11-20T11:28:26Z DerGuteMoritz joined #scheme 2014-11-20T11:28:46Z 92AAAHCHY quit (Read error: Connection reset by peer) 2014-11-20T11:32:32Z kbtr quit (Remote host closed the connection) 2014-11-20T11:49:01Z alexey joined #scheme 2014-11-20T11:50:55Z rtra quit (Ping timeout: 272 seconds) 2014-11-20T11:51:29Z kbtr joined #scheme 2014-11-20T11:53:34Z alexey quit (Ping timeout: 256 seconds) 2014-11-20T11:53:34Z pnkfelix joined #scheme 2014-11-20T11:54:41Z bjz quit (Ping timeout: 244 seconds) 2014-11-20T11:56:56Z rtra joined #scheme 2014-11-20T12:11:59Z bjz joined #scheme 2014-11-20T12:40:22Z usrj_ joined #scheme 2014-11-20T12:41:49Z alexey joined #scheme 2014-11-20T12:44:42Z hiyosi joined #scheme 2014-11-20T13:01:41Z 92AAAFSN1 quit (Ping timeout: 264 seconds) 2014-11-20T13:14:53Z filius` joined #scheme 2014-11-20T13:16:01Z jaaqo joined #scheme 2014-11-20T13:18:52Z karswell quit (Ping timeout: 240 seconds) 2014-11-20T13:18:58Z omefire1 joined #scheme 2014-11-20T13:25:15Z alexey quit (Remote host closed the connection) 2014-11-20T13:25:56Z filius` left #scheme 2014-11-20T13:43:36Z taylanub quit (Disconnected by services) 2014-11-20T13:44:13Z jusss joined #scheme 2014-11-20T13:44:28Z taylanub joined #scheme 2014-11-20T13:47:53Z agumonkey quit (Ping timeout: 264 seconds) 2014-11-20T13:49:43Z agumonkey joined #scheme 2014-11-20T14:02:05Z davexunit joined #scheme 2014-11-20T14:13:12Z leppie quit (Ping timeout: 245 seconds) 2014-11-20T14:17:53Z leppie joined #scheme 2014-11-20T14:27:15Z ffs quit (Remote host closed the connection) 2014-11-20T14:27:43Z jumblerg joined #scheme 2014-11-20T14:28:09Z diginet quit (Ping timeout: 265 seconds) 2014-11-20T14:29:14Z oleo joined #scheme 2014-11-20T14:29:20Z jumblerg quit (Client Quit) 2014-11-20T14:29:51Z alexey joined #scheme 2014-11-20T14:30:35Z daviid` joined #scheme 2014-11-20T14:30:59Z diginet joined #scheme 2014-11-20T14:32:31Z Gyps quit (Quit: Gyps) 2014-11-20T14:33:52Z enitiz joined #scheme 2014-11-20T14:36:10Z b4283 joined #scheme 2014-11-20T14:40:01Z macdice quit (Ping timeout: 244 seconds) 2014-11-20T14:49:47Z gravicappa joined #scheme 2014-11-20T14:57:24Z civodul quit (Remote host closed the connection) 2014-11-20T14:58:16Z civodul joined #scheme 2014-11-20T14:59:45Z usrj_ quit (Quit: AndroIRC - Android IRC Client ( http://www.androirc.com )) 2014-11-20T15:02:21Z jusss quit (Read error: Connection reset by peer) 2014-11-20T15:05:42Z ffs joined #scheme 2014-11-20T15:15:12Z Riastradh joined #scheme 2014-11-20T15:17:17Z haroldwu quit (Ping timeout: 264 seconds) 2014-11-20T15:17:38Z haroldwu joined #scheme 2014-11-20T15:18:35Z duggiefresh joined #scheme 2014-11-20T15:19:13Z jumblerg joined #scheme 2014-11-20T15:27:23Z askatasuna joined #scheme 2014-11-20T15:29:08Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T15:39:46Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T15:41:58Z khisanth_ joined #scheme 2014-11-20T15:43:54Z jumblerg joined #scheme 2014-11-20T15:44:23Z Khisanth quit (Ping timeout: 264 seconds) 2014-11-20T15:47:38Z daviid` quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T15:47:52Z fantazo joined #scheme 2014-11-20T15:48:24Z daviid` joined #scheme 2014-11-20T16:00:52Z jeapostrophe quit (Ping timeout: 255 seconds) 2014-11-20T16:06:10Z Rubix joined #scheme 2014-11-20T16:09:42Z MichaelRaskin joined #scheme 2014-11-20T16:20:59Z vanila joined #scheme 2014-11-20T16:23:07Z theseb joined #scheme 2014-11-20T16:26:00Z stamourv: technomancy: Re picobit: It should be portable. We originally used it on PIC18, and Peter Zotov ported it to ARM. Also works on workstations. 2014-11-20T16:26:34Z stamourv: You'd need to re-write the hardware/arch-specific parts of the VM, but that's about it. 2014-11-20T16:27:13Z theseb: i love scheme....i'm curious what people here think of clojure? 2014-11-20T16:27:20Z stamourv: And re RAM usage: The VM and programs can live in ROM. That's how we used it on PIC18s with < 1k of RAM. 2014-11-20T16:28:00Z vanila: clojure seems ok 2014-11-20T16:33:36Z redeemed quit (Quit: q) 2014-11-20T16:36:10Z hiyosi quit (Ping timeout: 265 seconds) 2014-11-20T16:37:21Z technomancy: stamourv: interesting; thanks 2014-11-20T16:38:20Z CoverSlide quit (Remote host closed the connection) 2014-11-20T16:38:24Z stamourv: technomancy: For more info, our IFL09 paper ( http://www.ccs.neu.edu/home/stamourv/papers/picobit.pdf ) discusses details of, e.g. the object representation, etc. 2014-11-20T16:41:48Z technomancy: stamourv: I've got an atmega32u4 in my project right now... I tried replacing the C firmware with forth and didn't have much luck, but this could work. 2014-11-20T16:42:10Z technomancy: (I'm sure it's possible in forth too, but I'm pretty bad at C) 2014-11-20T16:44:40Z psy_ joined #scheme 2014-11-20T16:44:54Z psy_ quit (Max SendQ exceeded) 2014-11-20T17:11:36Z theseb: technomancy: atmega? isn't that what arduino uses? 2014-11-20T17:19:41Z technomancy: theseb: yeah 2014-11-20T17:19:55Z technomancy: I am using http://www.pololu.com/product/3101 which is arduino-compatible 2014-11-20T17:21:10Z theseb: technomancy: arduinos (and compatbiles) are awesome.. 2014-11-20T17:21:29Z theseb: technomancy: replacing the firmware is hardcore 2014-11-20T17:21:51Z technomancy: theseb: TBH I would prefer ARM, but the community around avr seems better for beginners 2014-11-20T17:22:20Z theseb: technomancy: that web page doesn't say it is compatible with arduino anywhere 2014-11-20T17:22:30Z theseb: err 2014-11-20T17:22:32Z theseb: well it says 2014-11-20T17:22:36Z theseb: the bootloader is 2014-11-20T17:22:36Z technomancy: (context is that I'm selling kits for creating keyboards) 2014-11-20T17:22:40Z technomancy: http://www.pololu.com/docs/0J61/5.3 2014-11-20T17:22:44Z ventonegro quit (Remote host closed the connection) 2014-11-20T17:23:08Z technomancy: or http://www.pololu.com/docs/0J61/5.2 rather 2014-11-20T17:23:39Z theseb: technomancy: wait..so you can you use the arduino IDE and other stuff as if it was an Uno? 2014-11-20T17:23:58Z technomancy: theseb: you need to install a board descriptor I think 2014-11-20T17:24:06Z MichaelRaskin: >--089e014938c86f830d05084cac4b 2014-11-20T17:24:06Z MichaelRaskin: >Content-Type: text/plain; charset=UTF-8 2014-11-20T17:24:07Z MichaelRaskin: >Content-Transfer-Encoding: 8bit 2014-11-20T17:24:07Z MichaelRaskin: >X-MIME-Autoconverted: from base64 to 8bit by 401a0bf1 id mimedecode.py 2014-11-20T17:24:18Z MichaelRaskin: Oops, sorry 2014-11-20T17:24:30Z technomancy: theseb: but yeah, once it's set up, everything just works 2014-11-20T17:24:30Z theseb: technomancy: it would be nice to have a cheapo arduino knock off....then you wouldn't be afraid of making a mistake and ruining it 2014-11-20T17:24:50Z theseb: technomancy: so if you want forth why are you in #scheme? 2014-11-20T17:25:11Z technomancy: theseb: I want not-C =) 2014-11-20T17:25:19Z technomancy: also, I love forth and scheme both 2014-11-20T17:25:42Z technomancy: I thought it would be easier to start with forth, but for a newb, getting it to fit in 2.5kb isn't a great place to start 2014-11-20T17:25:56Z technomancy: so taking an existing implementation by someone who knows what they're doing seems wise 2014-11-20T17:26:23Z theseb: technomancy: can you flash with scheme? :) 2014-11-20T17:26:34Z technomancy: theseb: that's what I'm trying to find out 2014-11-20T17:26:47Z technomancy: sounds like either prescheme or picobit might work 2014-11-20T17:26:51Z cky: theseb: Re Clojure: if someone would port syntax-case to Clojure (I spoke about doing so years ago, but never found the time to do it), I'd use it a lot more. :-) 2014-11-20T17:26:51Z theseb: technomancy: wow..that'd be awesome! 2014-11-20T17:27:10Z technomancy: prescheme's type system sounds fascinating, but the docs are very sketchy 2014-11-20T17:27:13Z theseb: cky: so i.e. you want full hygiene...ok..valid point 2014-11-20T17:27:28Z cky: theseb: No, it's not full hygiene so much as I want there to be a pattern-based macro system. 2014-11-20T17:27:34Z technomancy: cky: someone has ported syntax-case to clojure 2014-11-20T17:27:37Z cky: theseb: Writing macros by manual destructuring is a huge pain in the ass. 2014-11-20T17:27:44Z cky: technomancy: Hallelujah! 2014-11-20T17:27:50Z technomancy: but yeah, hygiene is not an issue in clojure macros 2014-11-20T17:28:41Z vanila: forth seems much better idea than scheme for a microcontroller 2014-11-20T17:28:44Z cky: technomancy: Not so much "not an issue", just that there are workarounds that work well enough. 2014-11-20T17:28:53Z cky: technomancy: whereas Schemers don't like workarounds, they feel dirty. :-P 2014-11-20T17:29:08Z technomancy: cky: if you say so =) 2014-11-20T17:29:41Z technomancy: vanila: better than scheme, sure. better than prescheme? maybe so, maybe not =) 2014-11-20T17:30:15Z vanila: prescheme is a good point! 2014-11-20T17:30:26Z cky: technomancy: Clojure still uses the CL style of packaged symbols + gensymming everything (Clojure has a nicer syntax for auto-gensym, for sure). The way syntax-case works is by renaming everything for you automatically, so you don't have to think about gensymming in the vast majority of cases. 2014-11-20T17:31:15Z technomancy: cky: they both solve the same problems with CL's macro system in different ways 2014-11-20T17:32:19Z technomancy: vanila: I'm just wondering whether prescheme is too obscure; I can't find anything written in it other than the s48 VM 2014-11-20T17:32:32Z technomancy: a simple "hello world" would be nice =) 2014-11-20T17:32:32Z hiyosi joined #scheme 2014-11-20T17:32:33Z vanila: well that was the reason it was invented 2014-11-20T17:33:00Z technomancy: vanila: I'm wary of treating a system designed for a single purpose as a general-purpose thing 2014-11-20T17:33:20Z Riastradh: technomancy: has some documentation for Pre-Scheme, but your wariness is well-placed. 2014-11-20T17:33:30Z technomancy: Riastradh: nice; thank you 2014-11-20T17:33:53Z technomancy: it's a bit silly since the C code I would like to replace is only around 200 lines 2014-11-20T17:33:58Z technomancy: but it's the principle of the thing! 2014-11-20T17:37:59Z hiyosi quit (Ping timeout: 272 seconds) 2014-11-20T17:51:29Z amgarchIn9 joined #scheme 2014-11-20T17:52:34Z pjdelport quit (Quit: Connection closed for inactivity) 2014-11-20T17:59:38Z pnkfelix quit (Quit: rcirc on GNU Emacs 24.3.92.1) 2014-11-20T18:03:43Z pjb quit (Ping timeout: 255 seconds) 2014-11-20T18:04:26Z b4283 quit (Quit: Konversation terminated!) 2014-11-20T18:08:05Z kazimir42 joined #scheme 2014-11-20T18:10:30Z vanila: I have a scheme programming problem 2014-11-20T18:10:47Z vanila: I can solve it but i wonder what other solutions? 2014-11-20T18:12:41Z vanila: you have strings like (a b c) (a b x) (a y) and want to merge them into a tree 2014-11-20T18:13:09Z vanila: a-b-c 2014-11-20T18:13:09Z vanila: \ `x 2014-11-20T18:13:09Z vanila: y 2014-11-20T18:13:11Z vanila: like that 2014-11-20T18:13:15Z oleo__ joined #scheme 2014-11-20T18:13:57Z oleo is now known as Guest30194 2014-11-20T18:14:30Z oleo__ quit (Read error: Connection reset by peer) 2014-11-20T18:14:56Z Guest30194 quit (Ping timeout: 256 seconds) 2014-11-20T18:14:56Z pjb joined #scheme 2014-11-20T18:18:59Z psy_ joined #scheme 2014-11-20T18:22:50Z gravicappa quit (Remote host closed the connection) 2014-11-20T18:31:17Z Shadox joined #scheme 2014-11-20T18:34:49Z altphi joined #scheme 2014-11-20T18:35:38Z germ13 joined #scheme 2014-11-20T18:36:32Z _5kg quit (Ping timeout: 245 seconds) 2014-11-20T18:37:33Z theseb: technomancy: so WHY are you building some keyboard thingie? 2014-11-20T18:38:09Z technomancy: theseb: because it's awesome? 2014-11-20T18:38:14Z technomancy: I don't understand the question =) 2014-11-20T18:38:23Z _5kg joined #scheme 2014-11-20T18:38:27Z theseb: technomancy: what are you trying to do again? 2014-11-20T18:38:41Z technomancy: it's kind of a long story 2014-11-20T18:38:42Z vanila: building a ckeyboard from scratch? :) 2014-11-20T18:38:47Z technomancy: at first I just wanted an awesome keyboard 2014-11-20T18:38:54Z technomancy: but then my friends wanted awesome keyboards 2014-11-20T18:39:04Z technomancy: and then it kind of escalated from there 2014-11-20T18:39:14Z theseb: technomancy: wait..how are your's better than other ones? 2014-11-20T18:39:15Z technomancy: https://www.flickr.com/photos/technomancy/tags/atreus | http://atreus.technomancy.us 2014-11-20T18:39:27Z stamourv: vanila: Sounds like you want a trie: http://en.wikipedia.org/wiki/Trie 2014-11-20T18:39:47Z vanila: yes 2014-11-20T18:39:52Z technomancy: theseb: mechanical switches, pocket-sized, column-staggering, wood cases 2014-11-20T18:40:05Z amgarchIn9 quit (Ping timeout: 264 seconds) 2014-11-20T18:40:15Z technomancy: theseb: plus fully-programmable, and my hope is to get it fully-programmable-in-scheme 2014-11-20T18:40:26Z germ13 quit (Client Quit) 2014-11-20T18:41:26Z germ13 joined #scheme 2014-11-20T18:41:44Z technomancy: granted my definition of "pocket" may be a bit of a stretch 2014-11-20T18:42:15Z technomancy: sorry, didn't mean to turn it into a sales pitch, but he asked =) 2014-11-20T18:43:05Z ijp joined #scheme 2014-11-20T18:46:05Z kongtomo_ quit 2014-11-20T18:47:27Z Lingo quit (Quit: Be back later ...) 2014-11-20T18:48:01Z Lingo joined #scheme 2014-11-20T18:52:19Z Lingo quit (Ping timeout: 255 seconds) 2014-11-20T18:54:08Z oleo__ joined #scheme 2014-11-20T18:54:57Z oleo__ is now known as oleo 2014-11-20T18:55:11Z oleo quit (Read error: Connection reset by peer) 2014-11-20T18:56:04Z oleo joined #scheme 2014-11-20T19:03:22Z hiyosi joined #scheme 2014-11-20T19:04:01Z turbofail: technomancy: i fear i may have steered you down a dangerous path 2014-11-20T19:04:13Z technomancy: turbofail: bring it on =) 2014-11-20T19:04:53Z technomancy: I actually have a bunch of things I need to do around the business side of things to get this off the ground, so this could be a fun hack project to blow off steam in the mean time. =) 2014-11-20T19:05:36Z technomancy: it would be helpful if I could find evidence of prescheme being used for at least one other thing though 2014-11-20T19:07:52Z hiyosi quit (Ping timeout: 240 seconds) 2014-11-20T19:08:05Z turbofail: yeah. pretty sure such a thing doesn't exist 2014-11-20T19:09:30Z technomancy: I was quite surprised to find the docs claimed it implemented hindley-milner. 2014-11-20T19:09:41Z amgarchIn9 joined #scheme 2014-11-20T19:10:07Z turbofail: yeah. the paper about it claims that as well 2014-11-20T19:10:19Z technomancy: right; I meant the paper 2014-11-20T19:24:10Z joneshf-laptop quit (Remote host closed the connection) 2014-11-20T19:26:36Z Riastradh: technomancy: For 200 lines of C, maybe it would be better just to improve the C. What do those 200 lines of C do? 2014-11-20T19:27:47Z technomancy: Riastradh: well... it's kind of complicated. the C is perfectly serviceable, but boring. I'm actually interested in just doing insane cool shit as a way to build interest in the product I'm selling. =) 2014-11-20T19:36:46Z hiyosi joined #scheme 2014-11-20T19:37:43Z Lingo joined #scheme 2014-11-20T19:47:39Z alexey quit (Remote host closed the connection) 2014-11-20T19:48:58Z fikusz quit (Quit: Leaving) 2014-11-20T19:51:38Z fikusz joined #scheme 2014-11-20T19:53:26Z theseb quit (Quit: Leaving) 2014-11-20T19:54:50Z derek_c joined #scheme 2014-11-20T19:57:14Z fantazo quit (Ping timeout: 265 seconds) 2014-11-20T20:07:11Z civodul joined #scheme 2014-11-20T20:07:52Z hiroakip joined #scheme 2014-11-20T20:30:20Z altphi_ joined #scheme 2014-11-20T20:33:09Z altphi__ joined #scheme 2014-11-20T20:33:17Z altphi quit (Ping timeout: 240 seconds) 2014-11-20T20:34:55Z altphi_ quit (Ping timeout: 255 seconds) 2014-11-20T20:35:41Z tadni quit (Read error: Connection reset by peer) 2014-11-20T20:35:52Z askatasuna quit (Ping timeout: 240 seconds) 2014-11-20T20:38:34Z tadni joined #scheme 2014-11-20T20:39:14Z askatasuna joined #scheme 2014-11-20T20:39:33Z Lingo quit (Quit: Be back later ...) 2014-11-20T20:40:05Z derek_c quit (Ping timeout: 264 seconds) 2014-11-20T20:40:07Z Lingo joined #scheme 2014-11-20T20:40:19Z altphi__ quit 2014-11-20T20:42:48Z Lingo____ joined #scheme 2014-11-20T20:43:34Z Lingo quit (Read error: Connection reset by peer) 2014-11-20T20:50:26Z jaaqo quit (Ping timeout: 250 seconds) 2014-11-20T20:55:37Z fantazo joined #scheme 2014-11-20T20:57:41Z oldskirt joined #scheme 2014-11-20T20:58:43Z c74d is now known as Guest48047 2014-11-20T20:58:43Z Guest48047 quit (Killed (leguin.freenode.net (Nickname regained by services))) 2014-11-20T21:01:14Z c74d joined #scheme 2014-11-20T21:02:23Z pnkfelix joined #scheme 2014-11-20T21:11:06Z Rubix quit (Remote host closed the connection) 2014-11-20T21:11:40Z hiroakip quit (Ping timeout: 265 seconds) 2014-11-20T21:12:27Z phipes joined #scheme 2014-11-20T21:13:54Z alezost quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T21:18:33Z Lingo____ quit (Quit: Be back later ...) 2014-11-20T21:18:44Z alexey joined #scheme 2014-11-20T21:19:10Z Lingo____ joined #scheme 2014-11-20T21:19:43Z derek_c joined #scheme 2014-11-20T21:23:31Z Lingo____ quit (Ping timeout: 255 seconds) 2014-11-20T21:24:58Z Lingo____ joined #scheme 2014-11-20T21:25:24Z theseb joined #scheme 2014-11-20T21:25:27Z kazimir42 quit (Ping timeout: 250 seconds) 2014-11-20T21:26:08Z hiroakip joined #scheme 2014-11-20T21:28:57Z pnkfelix quit (Quit: rcirc on GNU Emacs 24.3.91.1) 2014-11-20T21:30:24Z phipes quit (Quit: My MacBook has gone to sleep. ZZZzzz…) 2014-11-20T21:39:27Z jumblerg quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2014-11-20T21:40:37Z theseb: Riastradh: ping 2014-11-20T21:43:30Z Lingo____ quit (Quit: Be back later ...) 2014-11-20T21:43:39Z joneshf-laptop joined #scheme 2014-11-20T21:44:06Z Lingo____ joined #scheme 2014-11-20T21:44:13Z developernotes joined #scheme 2014-11-20T21:45:43Z Riastradh: theseb: pong 2014-11-20T21:46:12Z theseb: Riastradh: i had what i think is a simple yet interesting academic question about scheme for you 2014-11-20T21:47:01Z theseb: Riastradh: here is proper way to use let ... (let (a 4) a)......maybe i'm overthinking this but it seems one can make an argument for (let '((a 4)) a) 2014-11-20T21:47:20Z theseb: sorry..proper way is (let ((a 4)) a) 2014-11-20T21:47:49Z vanila: why is it quoted? 2014-11-20T21:48:02Z theseb: Riastradh: the point i'm trying to make is that if Schemers disavow exceptions...then (let '((a 4)) a) would be more "proper" yes? 2014-11-20T21:48:17Z theseb: because it evaluates more like a normal nonmacro function! 2014-11-20T21:48:30Z Lingo____ quit (Ping timeout: 250 seconds) 2014-11-20T21:48:45Z theseb: if there was a good argument for deviating from normal way sexps are eval'd i'd like to hear it 2014-11-20T21:48:49Z Riastradh: So you mean you would evaluate all the operand expressions before doing any LET business? 2014-11-20T21:48:59Z Riastradh: Just like a procedure application? 2014-11-20T21:49:24Z theseb: Riastradh: yes! imagine we are professors designing a language that is super easy for beginners....wouldn't my alternate form be better for them? 2014-11-20T21:49:38Z theseb: Riastradh: just wondering 2014-11-20T21:49:55Z Riastradh: rudybot: eval (define (theseb-let bindings body) (error "placeholder -- if we even get to the point of the LET semantics, this error will fire")) 2014-11-20T21:49:56Z rudybot: Riastradh: your sandbox is ready 2014-11-20T21:49:56Z rudybot: Riastradh: Done. 2014-11-20T21:50:02Z Riastradh: rudybot: eval (theseb-let '((a 5)) a) 2014-11-20T21:50:03Z rudybot: Riastradh: error: a: undefined; cannot reference an identifier before its definition in module: 'program 2014-11-20T21:50:21Z Riastradh: rudybot: eval (theseb-let '((to-amplify-the-point 5)) to-amplify-the-point) 2014-11-20T21:50:21Z rudybot: Riastradh: error: to-amplify-the-point: undefined; cannot reference an identifier before its definition in module: 'program 2014-11-20T21:50:59Z theseb: Riastradh: it has to be a macro 2014-11-20T21:51:09Z vanila: you shouldnt put a quote on let 2014-11-20T21:51:25Z Riastradh: theseb: What would the point be? 2014-11-20T21:51:31Z theseb: vanila: my question is more academic....WHY did original let authors do it that way? 2014-11-20T21:51:42Z vanila: the original authors used a quote? 2014-11-20T21:51:54Z Riastradh: What does adding an extra keyword, quote, enable? 2014-11-20T21:51:58Z theseb: Riastradh: the point is we don't want to deviate from the way things work in the language unless there is a good reason to... 2014-11-20T21:52:24Z theseb: Riastradh: is SICP we learn how funcs are eval'd....all args are eval'd first 2014-11-20T21:52:38Z theseb: Riastradh: see the problem?....we are authoring let to NOT work that way! 2014-11-20T21:52:47Z theseb: s/is SICP/in SICP 2014-11-20T21:52:56Z vanila: (let ((a 1)) ...) is just short for ((lambda (a) ...) 1) 2014-11-20T21:52:59Z hiyosi quit (Ping timeout: 244 seconds) 2014-11-20T21:53:06Z Riastradh: No, I don't see the problem. Obviously you can't evaluate all the subforms of a LET form before deciding that you're doing a LET thing. 2014-11-20T21:53:27Z vanila: the lambda fixes the order of evaluation 2014-11-20T21:53:50Z theseb: Riastradh: so you are saying let HAD to be designed the way it was? 2014-11-20T21:53:52Z Riastradh: Are you suggesting that LET should be a procedure? That some subforms should be evaluated but not others? So far all I can gather that you've suggested is putting an extra token in the notation. 2014-11-20T21:54:10Z mrowe_away is now known as mrowe 2014-11-20T21:54:26Z theseb: Riastradh: i'm suggesting that notion that we should perhaps make our macros act like "normal " functions 2014-11-20T21:54:38Z theseb: Riastradh: i think ESR calls it "The Principle of Least Surprise" 2014-11-20T21:54:43Z Riastradh: Be more specific. 2014-11-20T21:54:53Z theseb: Riastradh: a beginner doesn't know or care what a macro is 2014-11-20T21:54:54Z cojy: theseb: that let wouldn't work if it was liek a normal function 2014-11-20T21:54:57Z cojy: it couldn't 2014-11-20T21:55:13Z theseb: Riastradh: he/she will just use let......he/she will expect it to work like a "normal" func 2014-11-20T21:55:22Z vanila: they should expect let to work how it's explained 2014-11-20T21:55:39Z vanila: its ok that special forms operate different to applications 2014-11-20T21:55:40Z Riastradh: theseb: So they would expect it to always fail the way I illustrated? 2014-11-20T21:55:46Z cojy: theseb: it's impossible for that form to work like a normal function given the semantics of function applicationin scheme 2014-11-20T21:56:13Z theseb: Riastradh: i know it isn't realistic to think about changing scheme spec....this is a hypothecial question 2014-11-20T21:56:31Z theseb: Riastradh: you could make a new lisp where it wouldn't "fail" 2014-11-20T21:56:33Z Riastradh: I know. I'm asking for a hypothetical answer to my questions in response. 2014-11-20T21:56:35Z turbofail: would you also prefer lambda to require a quote for the argument list? 2014-11-20T21:56:50Z theseb: turbofail: well from an academic persective maybe we should? 2014-11-20T21:56:53Z Riastradh: You need to give more details about your proposed semantics. 2014-11-20T21:57:06Z vanila: i think that the quote is worse, in particular what happens when you don't have it? error? 2014-11-20T21:57:07Z Riastradh: As is, all you've suggested is a single-token change to the notation of the language. 2014-11-20T21:57:07Z theseb: i'm not saying i'm right....i'm trying to find the argument against my idea 2014-11-20T21:57:32Z cojy: theseb: its that it works nothing like an actual function and would confuse people 2014-11-20T21:57:34Z turbofail: the argument against it is that it's not a function call and shouldn't look like one 2014-11-20T21:57:40Z vanila: it seems less simple, that would be my argument against it 2014-11-20T21:58:04Z turbofail: anyway it's still inconsistent because in a let, the binding forms should be evaluated 2014-11-20T21:58:17Z davexunit quit (Quit: Later) 2014-11-20T21:58:42Z turbofail: (initialization forms? whatever) 2014-11-20T21:58:45Z theseb: In general....there is always this tension in language design.......1. increase complexity with exceptions but increase convenience VERSUS 2. decrease complexity with fewer exceptions but decrease convenience 2014-11-20T21:58:58Z theseb: maybe my question has no answer since it is a design/subjective thing 2014-11-20T21:59:28Z vanila: i t seems very clear to me hat the ' is bad 2014-11-20T21:59:57Z vanila: it would be confusing to beginners also 2014-11-20T21:59:59Z cojy: i doubt you will find anyone here that thinks the quote adds anything at all and in fact does the opposite of what you are suggesting :/ 2014-11-20T22:00:05Z ecraven: theseb: there are things that are *not* function calls. LET is one of them :) 2014-11-20T22:00:12Z ecraven: same as SET!, IF, LAMBDA, etc. 2014-11-20T22:00:25Z ecraven: same as DEFINE.. the normal rules cannot apply there 2014-11-20T22:00:43Z ecraven: if you want that, you need to write (let '((a 5)) (eval 'a)) or something to that effect 2014-11-20T22:00:44Z Riastradh: theseb: You're not being more specific. 2014-11-20T22:00:47Z Riastradh: You're being more general. 2014-11-20T22:01:03Z vanila: IF and LET can be translated down to lambdas (assuming some things about boolean) 2014-11-20T22:01:07Z cojy: i think there's a very good argument for set! being removed in place of set-box! though ecraven :) 2014-11-20T22:01:38Z hypermagic: hello my friends 2014-11-20T22:01:42Z vanila: hi 2014-11-20T22:01:43Z Riastradh: Maybe I should ask you to be more general: can you generalize the single-token change you suggested into the general difference in the way the language evaluates LET? 2014-11-20T22:01:45Z theseb: ecraven: maybe this is wrong but i was assuming we'd want the special forms like set!, if, lambda, etc. to act like normal functions as much as possible 2014-11-20T22:01:50Z cojy: hello hypermagic 2014-11-20T22:02:03Z turbofail: theseb: why would you want that? they behave totally differently 2014-11-20T22:02:52Z theseb: turbofail: yes i know...in general they are special forms and behave in a special way 2014-11-20T22:03:08Z vanila: some of them can be translated into lambda terms and understood that way 2014-11-20T22:03:19Z pnkfelix joined #scheme 2014-11-20T22:03:21Z theseb: wait...are ALL macros special forms? 2014-11-20T22:03:34Z theseb: should you only use a macro when you want a special form? 2014-11-20T22:03:42Z turbofail: but he's saying that he even wants "lambda" to look like a function call 2014-11-20T22:03:42Z theseb: let me get that straight 2014-11-20T22:04:16Z Riastradh: `Special operator' (or `special form' refers to any syntactic operator whose evaluation rules are not standard procedure evaluation rule. 2014-11-20T22:04:18Z hypermagic: technomancy, scheme on an avr? ^^ you want ASM maybe C 2014-11-20T22:04:19Z theseb: turbofail: sorry..i've been designing my own lisp and i think i've been pondering it for too long :) 2014-11-20T22:04:32Z theseb: my brain is about to blow up 2014-11-20T22:04:49Z hypermagic: i do C usually, and works fine with 1kB sram. 2014-11-20T22:05:06Z technomancy: hypermagic: boooooooring 2014-11-20T22:05:17Z vanila: hypermagic, forth? 2014-11-20T22:05:32Z theseb: Riastradh: in general you only need to write macros if you want a special operator/form right? 2014-11-20T22:05:41Z theseb: Riastradh: everything else should be done with define ? 2014-11-20T22:06:29Z Riastradh: Yes, that's what macros are -- custom special operators defined by transforming into built-in ones. 2014-11-20T22:06:59Z hypermagic: technomancy, whats booring? scheme will notrun on 1kB sram. 2014-11-20T22:07:00Z cojy: there is definitely things with too much syntactic overhead without a macro, even if you don't _need_ one to make it operate 2014-11-20T22:07:11Z technomancy: hypermagic: I'm actually interested in prescheme 2014-11-20T22:07:28Z alexey quit (Remote host closed the connection) 2014-11-20T22:07:37Z derek_c quit (Ping timeout: 240 seconds) 2014-11-20T22:07:39Z taylanub: huh, haven't seen so many different active nicks in this channel in a long time 2014-11-20T22:07:48Z vanila: what, 5? 2014-11-20T22:08:07Z theseb: Riastradh: so a newbie mistake would be making a macro when a normal define-d function would work 2014-11-20T22:08:30Z Riastradh: Yes, that is a common mistake with macros. 2014-11-20T22:08:30Z taylanub: 8 in like the last 20 minutes, excluding me 2014-11-20T22:08:54Z turbofail: strictly speaking a normal define'd function can always work 2014-11-20T22:09:00Z askatasuna quit (Ping timeout: 244 seconds) 2014-11-20T22:09:09Z vanila: one use of macros is to save you writing LAMBDA so much 2014-11-20T22:09:13Z turbofail: macros don't allow you to do anything that you couldn't do otherwise 2014-11-20T22:09:45Z vanila: macros allow me to define new bindinging constructs 2014-11-20T22:09:50Z vanila: -ing 2014-11-20T22:09:54Z zacts quit (Read error: Connection reset by peer) 2014-11-20T22:09:57Z hypermagic: technomancy, interesint,g, i do simething similar using macros but i'm far from being comfortable, is there a compiler that makes C code outof prescheme? 2014-11-20T22:10:21Z vanila: it can also control evaluation order like in IF, COND 2014-11-20T22:10:27Z zacts joined #scheme 2014-11-20T22:10:27Z zacts quit (Changing host) 2014-11-20T22:10:27Z zacts joined #scheme 2014-11-20T22:11:05Z hypermagic: technomancy, functional polymorphism, macronizing abstraction using gcc http://pastebin.com/LXZM6RSY functional polymorphism optimization macronizing abstraction http://pastebin.com/iquR2PEh lambda.c macronizing abstraction linux gcc http://pastebin.com/ymrx528s sdltext_fps_d_asdf2 linux sdl hrt test demo http://pastebin.com/S5VCdvX5 2014-11-20T22:11:54Z technomancy: hypermagic: supposedly prescheme lets you do that, but I haven't gotten it working yet 2014-11-20T22:11:57Z technomancy: I don't really like C 2014-11-20T22:11:58Z technomancy: at all 2014-11-20T22:12:07Z hypermagic: me either 2014-11-20T22:12:25Z hypermagic: but that is the best what one can get, it is faster to write and more comfortable than asm 2014-11-20T22:13:52Z technomancy: well, I think we can do better =) 2014-11-20T22:13:57Z technomancy: or I think we might be able to 2014-11-20T22:14:27Z hypermagic: is this the prescheme ? https://searchcode.com/codesearch/view/2349866/ 2014-11-20T22:15:47Z daveo69 joined #scheme 2014-11-20T22:16:38Z hypermagic: still searching for a source 2014-11-20T22:16:44Z technomancy: it's part of scheme48 2014-11-20T22:17:13Z theseb: One last question...it is possible to write a function called say my-let that acts a lot like let but isn't a macro?....it would be called like this ...(my-let '( (a 3) (b 5) ) do-something) ? 2014-11-20T22:17:29Z technomancy: but yeah, it's hard to find info about unfortunately 2014-11-20T22:17:35Z vanila: theseb, (let ((a 1)) ...) is just short for ((lambda (a) ...) 1) 2014-11-20T22:17:43Z theseb: vanila: i know 2014-11-20T22:17:53Z vanila: ??? 2014-11-20T22:18:03Z theseb: vanila: so i could write my-let to invoke a lambda func 2014-11-20T22:18:14Z cojy: theseb: that would be a macro 2014-11-20T22:18:17Z cojy: or a special form 2014-11-20T22:18:38Z theseb: cojy: my question is if one could write my-let that wasn't a special form and have it act a lot like the macro let 2014-11-20T22:18:44Z vanila: you coud define something so that (reverse-apply 3 5 (lambda (a b) ...)) works 2014-11-20T22:18:46Z cojy: no you couldn't 2014-11-20T22:19:01Z vanila: (define (reverse-apply . args) (apply (last args) (but-last args))) 2014-11-20T22:19:08Z theseb: (define my-let (args) ( (lambda ...) ... ) ) 2014-11-20T22:19:15Z turbofail: theseb: you'd need to be able to write lambda as a function 2014-11-20T22:19:18Z duggiefresh quit (Remote host closed the connection) 2014-11-20T22:19:35Z theseb: cojy: hmm..let me try again...normal functions can make lambda calls right? 2014-11-20T22:19:52Z duggiefresh joined #scheme 2014-11-20T22:20:07Z cojy: what is a lambda call? 2014-11-20T22:20:33Z theseb: cojy: sorry..by lambda call i mean this....( (lambda (x) (+ x 1)) 4 ) 2014-11-20T22:20:34Z cojy: there is application and the lambda special form which one of those do you mean? 2014-11-20T22:20:40Z cojy: so application 2014-11-20T22:20:52Z theseb: cojy: that is a invocation of a function defined with a sexp using a lambda 2014-11-20T22:20:52Z hypermagic: ho, i think i found one http://matt.might.net/articles/compiling-scheme-to-c/ 2014-11-20T22:20:53Z cojy: of course you can do that almost anywhere in a scheme program 2014-11-20T22:21:13Z vanila: I think that you should think about: (my-let '((a (+ 1 2)) (b 5)) do-something) 2014-11-20T22:21:25Z daveo69 left #scheme 2014-11-20T22:21:33Z cojy: hypermagic: theres lots of scheme to c compilers, chicken is one 2014-11-20T22:21:33Z vanila: there's no way that (+ 1 2) will be evaluated, since its quoted 2014-11-20T22:21:44Z theseb: vanila: hmm...thinking 2014-11-20T22:21:53Z didi joined #scheme 2014-11-20T22:22:21Z cojy: prescheme isn't scheme though 2014-11-20T22:22:24Z theseb: vanila: that seems ok...so instead of substituting 3 everywhere you put (+ 1 2) 2014-11-20T22:22:32Z vanila: okay 2014-11-20T22:22:37Z vanila: but with LET i can use (+ 1 2) 2014-11-20T22:22:43Z vanila: so this is harder to use 2014-11-20T22:23:01Z theseb: vanila: you can use that with my-let as well 2014-11-20T22:23:13Z theseb: vanila: regular let would eval say (* 2 3) 2014-11-20T22:23:25Z theseb: vanila: my-let would eval (* 2 (+ 1 2)) 2014-11-20T22:23:34Z turbofail: who's doing this substitution? 2014-11-20T22:23:34Z vanila: ah okay 2014-11-20T22:23:34Z theseb: vanila: so both would give same output 2014-11-20T22:23:36Z Lingo_____ joined #scheme 2014-11-20T22:23:42Z cojy: my-let can't do that unless it's a special form or a macro theseb 2014-11-20T22:23:44Z vanila: so it could recompte things 2014-11-20T22:24:02Z duggiefresh quit (Ping timeout: 245 seconds) 2014-11-20T22:24:20Z theseb: cojy: maybe i need to actually try to write my-let then to see for myself it is impossible :) 2014-11-20T22:24:22Z Lingo_____ quit (Client Quit) 2014-11-20T22:24:27Z cojy: i think you should 2014-11-20T22:24:41Z vanila: you could define it with EVAL if you also quote the do-something code block 2014-11-20T22:24:48Z Lingo_____ joined #scheme 2014-11-20T22:24:59Z vanila: in some ways a macro is similar to a function which has been passed quoted code 2014-11-20T22:25:13Z vanila: but its' actually a very different thing 2014-11-20T22:25:18Z turbofail: you'd have to quote the do-something block anyways, otherwise it would try and run before the bindings have been established 2014-11-20T22:25:24Z cojy: the body would have to be quoted too 2014-11-20T22:25:27Z theseb: turbofail: right 2014-11-20T22:26:06Z theseb: cojy: if i quoted everything you still think it wouldn't be possible? 2014-11-20T22:26:18Z turbofail: it still isn't possible, unless you use `eval' 2014-11-20T22:26:22Z theseb: cojy: (my-let 'the-variables 'the-code-to-run) 2014-11-20T22:26:22Z cojy: it wouldn't be comparable to let at all in that case 2014-11-20T22:26:29Z cojy: since you would have to eval your code every single time 2014-11-20T22:27:27Z cojy: you can't make something equivalent to let 2014-11-20T22:27:44Z theseb: cojy: not exactly...right 2014-11-20T22:27:51Z cojy: no not exactly, not even close 2014-11-20T22:27:57Z theseb: ok 2014-11-20T22:28:06Z cojy: for example you wouldn't have the parent environment available in the evaluated code 2014-11-20T22:28:15Z cojy: only what was specifically in that let 2014-11-20T22:28:30Z theseb: cojy: that is because of the explicit eval call? 2014-11-20T22:28:37Z cojy: yes 2014-11-20T22:28:47Z cojy: you should write an interpreter for scheme first before pondering these things 2014-11-20T22:28:54Z cojy: it's not too much work 2014-11-20T22:28:55Z theseb: cojy: i have :) 2014-11-20T22:28:57Z Lingo_____ quit (Ping timeout: 240 seconds) 2014-11-20T22:29:07Z theseb: cojy: https://bitbucket.org/seberino/maxwell 2014-11-20T22:29:25Z theseb: cojy: for some very tiny subset with a few deviations i preferred 2014-11-20T22:29:41Z theseb: cojy: that's why i'm thinking of such things 2014-11-20T22:29:58Z theseb: and why my brain is about to blow up :) 2014-11-20T22:30:53Z vanila: each time the brain explodes, it grows back stronger! 2014-11-20T22:30:58Z theseb: lol 2014-11-20T22:31:20Z turbofail: theseb: what you're trying to do, as i've said many times, is equivalent to trying to build a lambda form out of runtime data, which you can't do 2014-11-20T22:31:28Z turbofail: without calling `eval' anyway 2014-11-20T22:31:49Z cojy: even with eval there will be restrictions 2014-11-20T22:32:10Z turbofail: sure, you'll have trouble getting a proper environment and such 2014-11-20T22:33:02Z theseb: turbofail: runtime data = after arguments are evaluated? 2014-11-20T22:33:18Z theseb: sorry..i'm not used to the lingo 2014-11-20T22:34:09Z taylanub: theseb: while the program is running 2014-11-20T22:34:38Z theseb: is everyone in this channel CS grad students? 2014-11-20T22:34:39Z turbofail: runtime is "as your program is running," as opposed to stuff that you explicitly wrote down 2014-11-20T22:34:46Z theseb: i'm not sure why everyone is sooo fast with the lingo 2014-11-20T22:34:49Z taylanub: theseb: I'm a high-school drop-out 2014-11-20T22:35:12Z theseb: it took me a long time to understand environments and eval and such.....i still need to think slowly about such tings 2014-11-20T22:35:14Z theseb: things* 2014-11-20T22:35:54Z theseb: taylanub: one of those dropouts who wasn't interested in school, starts his own company and makes a few mil? :) 2014-11-20T22:36:03Z theseb: taylanub: then has PhDs working for him? :) 2014-11-20T22:36:27Z taylanub: maybe if I had anything resembling a social life :P 2014-11-20T22:36:59Z theseb: taylanub: remember Bobby Fischer the great chess player?...i think he dropped out of school to do chess full time...maybe you're like him 2014-11-20T22:37:28Z theseb: Fisher* maybe 2014-11-20T22:37:52Z turbofail: bobby fisheri is a frothing anti-semite hermit 2014-11-20T22:37:55Z taylanub: my psyche is probably not balanced indeed but I've also been self-teaching since about 5 years now 2014-11-20T22:38:20Z theseb: taylanub: autodidact! i think that's the word 2014-11-20T22:38:21Z theseb: for you 2014-11-20T22:38:29Z theseb: turbofail: only at end of life when he got psycho 2014-11-20T22:39:07Z theseb: taylanub: like thomas edison 2014-11-20T22:39:27Z taylanub: (also, only "self-teaching" if I ignore all the friendly people on IRC, those contributing to Wikipedia, writing guides on the web, etc. :) ) 2014-11-20T22:40:09Z theseb: taylanub: yes but you still don't need someone to tell you what to do..you're self motivated 2014-11-20T22:40:16Z theseb: taylanub: so why not bang out a GED? 2014-11-20T22:40:20Z taylanub: dedication + enjoyment in the task can get you a long way in CS I think, since all the material can be found via the Internet 2014-11-20T22:40:33Z taylanub: theseb: GED is a USA thing, no? 2014-11-20T22:40:42Z theseb: yes...oh...you're not in US 2014-11-20T22:40:44Z theseb: n/m 2014-11-20T22:40:57Z fantazo quit (Quit: Verlassend) 2014-11-20T22:41:09Z theseb: taylanub: well if you are good then companies will still hire you 2014-11-20T22:41:32Z taylanub: I have a shitty iOS job at the moment 2014-11-20T22:41:53Z turbofail: theseb: no the anti-semitism started long before then 2014-11-20T22:42:14Z turbofail: the hermitism of course came later 2014-11-20T22:42:16Z theseb: taylanub: regular PhDs will have the impressive resume but not soo impressive interview....your resume will be less impressive but you'll blow them away during your interview 2014-11-20T22:42:40Z theseb: "I know he has no degree but damn...he seems to know his stuff" 2014-11-20T22:44:51Z fantazo joined #scheme 2014-11-20T22:46:29Z taylanub: run-time data could theoretically be reduced to only the things which you read via I/O or get from the OS like ARGV and ENV as the program starts running, though in practice / in most implementations, if I (define my-vector (vector 1 2 3)) then I'll also have that vector in memory at run-time 2014-11-20T22:48:02Z taylanub: (emphasis goes to the constant integer arguments to `vector', which actually make the vector apparent at compile-time already, so any operations using it could be optimized to use those constants at run-time, but doing that over a whole program is hard, especially given modules; if I export `my-vector' and compile the module as a single component, it has to be in the compiled image) 2014-11-20T22:48:45Z taylanub: I wonder if an RnRS for a large n might mandate such optimizations, since akin to TCO, it can change whole complexity classes 2014-11-20T22:48:57Z askatasuna joined #scheme 2014-11-20T22:49:47Z hiyosi joined #scheme 2014-11-20T22:52:13Z taylanub: I wonder why not more Scheme implementations do this; is the time complexity of the optim too high? 2014-11-20T22:54:04Z vanila: taylanub, supercompilation? 2014-11-20T22:54:25Z vanila: where you trace through the whole program making notes on the possible values and meanings of stuff? 2014-11-20T22:54:30Z hiyosi quit (Ping timeout: 255 seconds) 2014-11-20T22:54:41Z Riastradh: What optimization are you describing specifically? 2014-11-20T22:55:04Z taylanub: what vanila just described is what I have in mind 2014-11-20T22:55:16Z vanila: i think the reason is because its really hard! 2014-11-20T22:55:20Z vanila: and it works best on a pure language 2014-11-20T22:55:29Z vanila: no callcc or set! 2014-11-20T22:55:57Z vanila: even control flow analysis seems too serios an optimization for most scheme compilers(?) 2014-11-20T22:59:04Z taylanub: I think the sum of constant folding, constant propagation, and partial evaluation would be it. or are the former considered special-cases of the latter? 2014-11-20T22:59:20Z taylanub: (the former two) 2014-11-20T22:59:43Z mrowe is now known as mrowe_away 2014-11-20T23:00:00Z vanila: I want to try doing partial evaluation 2014-11-20T23:00:12Z vanila: it's very interesting but I think it's really hard to do well, knnowing which things to unfold and such 2014-11-20T23:00:13Z Riastradh: Constant folding and propagation are, theoretically speaking, special cases of partial evaluation, which is a very general concept not usually realized in practice in any semblance of its full generality. 2014-11-20T23:00:27Z vanila: staging seems like a nice intermediate 2014-11-20T23:00:31Z vanila: sort of explicit partial evaluation 2014-11-20T23:01:13Z Riastradh: Procedure integration is another specialization of partial evaluation which is usually implemented separately from constant folding and constant propagation. 2014-11-20T23:02:07Z Riastradh: Some Scheme compilers do some nontrivial flow analysis. For example, LIAR, MIT Scheme's compiler, computes what some people call 0CFA -- 2014-11-20T23:02:49Z Riastradh: that is, conservatively approximating the complete set of lambdas that can be called at any given call site, and the complete set of call sites that any lambda can be called at, without discriminating nested calls (X can be called from Y only via Z). 2014-11-20T23:03:19Z vanila: wow! 2014-11-20T23:03:29Z vanila: I didn't know MIT scheme did 0CFA 2014-11-20T23:03:37Z vanila: I tried to learn how to implement that and it seems extremely difficult 2014-11-20T23:03:38Z zv joined #scheme 2014-11-20T23:03:39Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2014-11-20T23:04:02Z hiyosi joined #scheme 2014-11-20T23:06:49Z taylanub: the Wikipedia page on partial evaluation has a very neat summary: any program is seen as: prog = "Input_static × Input_dynamic -> Output", and one wants prog* = prog × Input_static = "Input_dynamic -> Output". 2014-11-20T23:06:49Z Riastradh: Not really. Start by observing that in ((lambda (f) ...) (lambda (x) ...)), (lambda (f) ...) is applied at that call site, and f can have (lambda (x) ...) as its value. Now look at (f ...), knowing that that can call (lambda (x) ...), and repeat the process until everything stops changing. 2014-11-20T23:08:18Z taylanub: (and the "Futamura projections" section there has a nice mind-blow) 2014-11-20T23:08:25Z vanila: yeah it's cool stufff 2014-11-20T23:08:31Z vanila: i want to try it but it seems difficult 2014-11-20T23:08:53Z civodul quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2014-11-20T23:09:56Z taylanub: wouldn't be surprised if Stalin does some very hard partial evaluation, but I heard it has absurdly long compile-times, so I wonder how far one can go within bounds of sanity. 2014-11-20T23:10:15Z Riastradh: It does. 2014-11-20T23:10:17Z mrowe_away is now known as mrowe 2014-11-20T23:10:51Z vanila: I wonder if there's a way to make this stuff easy 2014-11-20T23:11:09Z vanila: or at least modular in such a way that the effort that went in can be reused lots 2014-11-20T23:12:16Z weinholt quit (Read error: Connection reset by peer) 2014-11-20T23:13:43Z weinholt joined #scheme 2014-11-20T23:14:55Z karswell joined #scheme 2014-11-20T23:17:41Z karswell quit (Remote host closed the connection) 2014-11-20T23:17:54Z karswell joined #scheme 2014-11-20T23:18:20Z turbofail: i'm not entirely sure if stalin's flow analysis works the same way, but i found the implementation of a related project, dysvunctional language, to make a decent amount of sense: https://github.com/axch/dysvunctional-language 2014-11-20T23:18:43Z turbofail: that flow analysis goes way beyond 0CFA though. actually i think it might not be guaranteed to terminate 2014-11-20T23:19:11Z vanila: if must terminate 2014-11-20T23:19:16Z vanila: that is also a problem for partial evaluation 2014-11-20T23:19:22Z turbofail: "make sense" as in i could understand how it worked, not so much that it would make sense to use 2014-11-20T23:21:06Z turbofail: dysvunctional language is more limited than stalin though. no mutable data structures, no set!, etc. 2014-11-20T23:22:43Z vanila: how could i learn more about partial evaluation and/or control flow analysis? 2014-11-20T23:22:43Z turbofail: well i know as a fact that stalin's flow analysis doesn't go all the way to union-free 2014-11-20T23:26:30Z fantazo quit (Ping timeout: 244 seconds) 2014-11-20T23:28:30Z sheilong joined #scheme 2014-11-20T23:31:50Z askatasuna quit (Ping timeout: 265 seconds) 2014-11-20T23:38:28Z kongtomorrow joined #scheme 2014-11-20T23:39:17Z Riastradh: vanila: You could email Alexey and ask him for suggestions. 2014-11-20T23:39:28Z Riastradh: There are lots of papers in the literature, of course. 2014-11-20T23:39:42Z Riastradh: I don't know offhand of any good introductory material, though. 2014-11-20T23:39:54Z vanila: Alexey Radul? 2014-11-20T23:39:58Z Riastradh: Yes. 2014-11-20T23:41:13Z germ13 quit (Ping timeout: 255 seconds) 2014-11-20T23:48:29Z stepnem quit (Ping timeout: 264 seconds) 2014-11-20T23:52:34Z jumblerg joined #scheme 2014-11-20T23:59:03Z daviid` quit (Ping timeout: 244 seconds)