00:00 (join) tauntaun 00:10 (quit) tauntaun: Quit: Ex-Chat 00:12 (join) littlebobby 00:12 (join) realitygrill 00:17 (join) lewis1711 00:19 (quit) realitygrill: Ping timeout: 264 seconds 00:25 (join) yoklov1 00:27 (join) realitygrill 00:30 (quit) neilv: Ping timeout: 255 seconds 00:36 lewis1711: https://gist.github.com/1064251 can anybody help with this type error? I have no idea why a polymorphic function can't be applies here 00:41 jonrafkind: vectorof a? 00:41 jonrafkind: meaning the operations should be a vector? 00:45 lewis1711: the arguments should be 00:46 lewis1711: actually I can't even do a simple function :/ 00:47 lewis1711: (: add (Number -> Number -> Number)) (define (add a b) (+ a b)) 00:47 lewis1711: is an error 00:50 lewis1711: oh, I am using ML or whatever notation 00:50 lewis1711: should be (Number Number -> Number) 00:51 lewis1711: herp derp working now 00:58 jonrafkind: ah thast what I thought at first 00:59 jonrafkind: but i havent used typed/racket enough to be sure 01:04 (quit) ehine1: 01:05 (join) saint_cypher 01:15 lewis1711: just submitted a bug report on drrackets handling of colours. maybe I'm the only one that likes a white on black colour scheme with visible line numbers lol 01:16 jonrafkind: i fixed that a long time ago 01:16 jonrafkind: what version of drracket are you using? 01:17 lewis1711: 5.1 01:17 lewis1711: is there a new version? 01:17 lewis1711: will grab it 01:17 jonrafkind: i thought it was suppsoed to work in 5.1.. 01:17 (quit) yoklov1: Quit: Leaving. 01:17 jonrafkind: ill try in the latest 01:18 lewis1711: there's nothing in the 5.1.1 release notes 01:18 jonrafkind: works in 5.1.1 01:18 lewis1711: alright, i'll try it out 01:19 (quit) saint_cypher: Ping timeout: 246 seconds 01:20 jonrafkind: http://bugs.racket-lang.org/query/?cmd=view%20audit-trail&database=default&pr=11655&return_url=http%3A%2F%2Fbugs.racket-lang.org%2Fquery%2F%3Fdatabase%3Ddefault%3Bdebug%3D%3BState%3Dany%3BSynopsis%3Dline%2520numbers%3Bmultitext%3D%3Bcolumns%3DState%3Bcolumns%3DSynopsis%3Bcolumns%3DCategory%3Bcolumns%3DLast-Modified%3Bcolumns%3DRelease%3Bcmd%3Dsubmit%2520query%3Bsortby%3DNumber 01:20 rudybot: http://tinyurl.com/3brcfdx 01:20 lewis1711: 5.1 also is very hard to read with a black on white gtk colour scheme. a small but sizeable portion of programs fail this test, so I am reluctant to submit a bug report about that. 01:20 lewis1711: as I am not sure if it's the themes fault or dr. rackets 01:23 jonrafkind: you're building 5.1.1 from source? 01:23 lewis1711: no, downloading it over a painfully throttled connection 01:23 lewis1711: using the shell script installer for ubuntu 01:23 jonrafkind: ok 01:23 jonrafkind: actually i should try that too 01:24 jonrafkind: oh 5.1 might have come out just before my fix 01:27 lewis1711: sweet. download should be done by christmas :) 01:27 jonrafkind: whats your download speed? 01:28 lewis1711: 7.3 kB/s 01:29 jonrafkind: omfg 01:34 jonrafkind: yea it doenst work in 5.1 but it should work in 5.1.1 01:36 jonrafkind: ill jsut reply to your bug saying it should be fixed and to confirm 01:36 jonrafkind: oh robby already did 01:53 (join) neilv 01:59 (quit) realitygrill: Quit: realitygrill 02:37 (quit) jonrafkind: Ping timeout: 252 seconds 02:38 ohwow: Can somebody please explain to me what does '(#%# xexpr ...) renders an X-expression forest.' mean? 02:38 ohwow: xexpr forest? 02:38 eli: neilv: I have an example where speed is going to be a very big problem. 02:39 eli: ohwow: forest = many trees. 02:39 ohwow: I still don't get it :( 02:40 eli: ohwow: XML is made of text file with a tree structure of nested nodes, right? 02:42 ohwow: Hm, so it's just for generating several XML-expressions? 02:43 eli: Yes, because what I said is wrong -- it's not a single tree. 02:43 ohwow: Why can't I just write (formlet (,(=> input-string x) ,(=> input-string y))) ? 02:43 eli: That, I have no idea. 02:43 mk: a forest is a set of trees, with more than one tree in it 02:43 mk: a tree is a graph with no cycles. If you have a bunch of disconnected trees, you get a "forest" (haha) 02:44 mk: xml, iirc, is a tree, not a forest 02:45 mk: the root node is the document itself... it's somewhat weird to call it a tree in the first place 02:46 eli: mk: If the root node is the document itself, then the *contents* of an xml document is a forest. 02:46 eli: In any case, "forest" is not a joke, it's the way it's used elsewhere in CS. 02:46 mk: they have sibling relations between them 02:47 lewis1711: that's new. a sequence of disconnected trees is a forest. I like it 02:48 lewis1711: also, is it possible to include information about the length when defining a type in typed racket? 02:48 (quit) neilv: Ping timeout: 255 seconds 02:49 lewis1711: I have (define-type NVector (Vectorof Number)), but I'd like the vectors length to be part of the type information, so that an NVector of length 3 is a different type to one of length 2 02:49 ohwow: Do you guys know any other languages which uses contracts? 02:49 ohwow: I think contracts is a nice feature 02:50 mk: it's an official name, but it's also a "joke" in the sense that it's amusing, in the same way that physicists amuse themselves by calling subatomic particles truth and beauty etc. 02:50 lewis1711: ohwow: D uses it. 02:52 mk: lewis1711: to be pedantic, a forest is a set, not a sequence ;) 02:52 lewis1711: a set is a kind of sequence though. type hierarchy! 02:53 mk: a sequence is a kind of set 02:54 ohwow: Hey guys, I don't know if it's a bug, but most of the examples on http://docs.racket-lang.org/web-server/formlets.html dont work for me. I think the problem is in `text-input' procedure. However, if you replace `text-input' with `input-string' it works fine. 02:54 ohwow: I have Racket 5.1.1 02:54 ohwow: should I file a bug or smth? 02:55 lewis1711: mk: double checked that. my mistake. 02:56 lewis1711: it appears sequence means what i hitherto called an "ordered sequence". I wonder what the super generic term is 02:56 mk: what's an unordered sequence? 02:56 ohwow: a set? 02:56 ohwow: oh no 02:57 lewis1711: something that is neither a set or an ordered sequence 02:58 lewis1711: so a collection of objects without order, but also without the set properties of only having one instance of each object 02:58 lewis1711: or something. 02:58 mk: I think that's a bag 02:59 (join) realitygrill 02:59 mk: yep. aka multiset 02:59 lewis1711: ha. the terms in computer science and maths are probably different as well 03:02 eli: mk: In that sense, "forest" is a joke too, as well as 90% of CS terms. 03:03 mk: I suppose, but forest is a particularly good one 03:03 lewis1711: I think I might be able to get vector legnths with this All syntax 03:04 ohwow: Can someone please check that for me? < ohwow> Hey guys, I don't know if it's a bug, but most of the examples on 03:04 ohwow: http://docs.racket-lang.org/web-server/formlets.html dont work for me. I think the problem is in `text-input' 03:04 ohwow: procedure. However, if you replace `text-input' with `input-string' it works fine. 03:04 lewis1711: (All (A) (Listof A) -> Natural) can anybody tell me what sort of type that describes? 03:09 (join) neilv 03:27 (quit) realitygrill: Quit: realitygrill 03:41 (join) masm 04:24 (join) Skola 04:29 (quit) roblally: Quit: roblally 05:19 (join) roblally 05:20 (quit) roblally: Client Quit 05:21 (join) roblally 05:40 (quit) neilv: Ping timeout: 255 seconds 06:10 (quit) Penten: Remote host closed the connection 06:19 (quit) JuanDaugherty: Read error: Connection reset by peer 06:30 (part) lewis1711 07:35 (join) Lajla 07:52 (join) yoklov1 08:00 (quit) yoklov1: Quit: Leaving. 08:13 (quit) masm: Quit: Leaving. 08:13 (join) yoklov1 08:14 (join) yoklov2 08:14 (quit) yoklov1: Read error: Connection reset by peer 08:37 (join) racket 08:37 racket: [racket] plt pushed 1 new commit to master: http://bit.ly/kTMTd1 08:37 racket: [racket/master] another fix for `vector-{ref,set!}' on chaperone/impersonator - Matthew Flatt 08:37 (part) racket 08:37 (quit) yoklov2: Quit: Leaving. 08:43 (join) yoklov1 08:45 (quit) yoklov1: Client Quit 08:58 (join) mithos28 09:04 (join) racket 09:04 racket: [racket] plt pushed 1 new commit to master: http://bit.ly/isSJhR 09:04 racket: [racket/master] scribble: clarify intent of `#:use-sources' - Matthew Flatt 09:04 (part) racket 09:05 ohwow: Hello, I have problems with WebSockets library for racket 09:05 ohwow: It just doesnt work 09:06 ohwow: http://pastebin.com/sM9v5MnC 09:06 ohwow: this code just wont start up a server 09:07 (join) realitygrill 09:08 (quit) realitygrill: Client Quit 09:15 (join) lucian 09:18 (join) yoklov1 09:24 (join) realitygrill 09:30 (quit) realitygrill: Quit: realitygrill 09:43 (join) dnolen 09:47 (quit) dnolen: Client Quit 10:10 (quit) mithos28: Quit: mithos28 10:13 (quit) mk: Remote host closed the connection 10:17 (nick) elliottcable|zzz -> elliottcable 10:20 (join) tauntaun 10:38 (join) dherman 10:40 (quit) martinhex: Read error: Connection reset by peer 10:47 (join) martinhex 10:52 (join) dnolen 11:00 (join) neilv 11:00 (quit) neilv: Changing host 11:00 (join) neilv 11:01 (nick) samth_away -> samth 11:08 (nick) danking_ -> danking 11:09 (quit) neilv: Quit: Leaving 11:20 (quit) yoklov1: Quit: Leaving. 11:25 (join) anRch 11:41 (quit) dherman: Remote host closed the connection 11:41 (quit) roblally: Quit: roblally 12:13 (quit) anRch: Quit: anRch 12:15 (join) dherman 12:19 (join) anRch 12:34 (join) jonrafkind 12:37 (join) shofetim 12:37 (join) MayDaniel 12:40 (join) yoklov1 12:43 (quit) anRch: Quit: anRch 12:44 (join) masm 12:49 (quit) MayDaniel: 12:51 (quit) rgee: Ping timeout: 258 seconds 12:52 (join) rgee 12:57 (join) MayDaniel 13:02 (quit) MayDaniel: Read error: Connection reset by peer 13:21 jonrafkind: how can I evaluate an expression in phase 1 if the current phase is 0? 13:30 (join) mithos28 13:30 stamourv: jonrafkind: begin-for-syntax? 13:31 jonrafkind: I want to run (syntax-local-value x) from phase 0 13:31 jonrafkind: but that won't work because it needs to be run at phase 1 13:31 jonrafkind: so how do I send x from phase 0 to phase 1 13:31 stamourv: You can't. 13:31 (quit) rgee: Ping timeout: 244 seconds 13:32 jonrafkind: well.. maybe theres some trick 13:32 stamourv: You can serialize it, or something, but you can't just cross phases like that. 13:33 jonrafkind: something with eval I guess 13:38 (quit) yoklov1: Quit: Leaving. 13:38 (quit) mithos28: Quit: mithos28 13:47 (quit) masm: Read error: Connection reset by peer 13:49 (join) masm 13:56 (quit) masm: Quit: Leaving. 13:57 samth: jonrafkind: (let-syntax ([x e]) ...) 13:57 samth: e is at phase 1 13:58 (join) jao 13:59 (join) masm 14:03 jonrafkind: but I can't make e deal with any phase 0 values 14:04 jonrafkind: well maybe i can just do the whole test at phase 1 14:04 (quit) masm: Read error: Connection reset by peer 14:07 (join) carleastlund 14:14 (join) anRch 14:19 (join) masm 14:21 (join) rgee 14:34 (join) rgrinberg_ 14:36 (quit) rgee: Ping timeout: 276 seconds 14:38 (quit) masm: Quit: Leaving. 14:39 tauntaun: samth: a couple of days ago I asked about Slideshow and you pointed me to some of the talks on your website. Any chance I could get the Racket source code to a couple of the flashier ones, say, "Growing Software: From Scripts to Programs" and "Logical Types for Untyped Languages"? 14:39 (quit) rgrinberg_: Quit: Leaving 14:40 tauntaun hopes the request isn't inappropriate! 14:40 (join) rgee 14:41 (join) masm 14:42 (quit) masm: Client Quit 14:47 (join) mithos28 14:48 stamourv: mithos28: Have you seen Matthew's reply? 14:49 (join) superjudge 14:52 (join) masm 14:53 jonrafkind: so how can I get a syntax object at phase1 imbued with lexical information from phase 0? read-syntax seems to produce an unenriched ssyntax object 14:53 jonrafkind: basically I just want to emulate #lang 14:55 carleastlund: jonrafkind, #lang does not add lexical information to a syntax object 14:55 jonrafkind: wonderful 14:55 (quit) dnolen: Ping timeout: 252 seconds 14:56 jonrafkind: ah I know ill just make a regular macro since that what module-begin does 14:58 carleastlund: jonrafkind, what kind of context are you trying to add here? Perhaps there is an appropriate mechanism? 14:59 jonrafkind: lexical context 14:59 jonrafkind: I want #'foo to come from the foo.rkt module 14:59 carleastlund: Right, but for what purpose? The context of a module's base language? 15:00 jonrafkind: uhm yea I guess 15:00 carleastlund: Or perhaps you just want some core form to refer to some specific #'foo, I take it. Then yes, it sounds like a macro is appropriate. 15:01 carleastlund: For comparison, take the reader macro that turns 'x into (quote x). It doesn't determine what the binding for quote is -- that's up to the program. You get a different quote depending whether you use racket or bsl or whatever. 15:05 (join) dnolen 15:10 (join) racket 15:10 racket: [racket] plt pushed 9 new commits to master: http://bit.ly/mlkQ5X 15:10 racket: [racket/master] Added srclocs to errors raised by match. - Eric Dobson 15:10 racket: [racket/master] Add types for kernel struct constructors. - Eric Dobson 15:10 racket: [racket/master] Fix match to not use apply and work with TR. - Eric Dobson 15:10 (part) racket 15:14 (quit) mithos28: Quit: mithos28 15:25 (quit) superjudge: Read error: Connection reset by peer 15:26 (join) superjudge 15:35 (quit) superjudge: Quit: superjudge 15:40 (join) zx80 16:06 (quit) zx80: Ping timeout: 255 seconds 16:21 (quit) anRch: Quit: anRch 16:23 (quit) tauntaun: Quit: Ex-Chat 16:29 (join) racket 16:29 racket: [racket] plt pushed 2 new commits to master: http://bit.ly/rdSOVh 16:29 racket: [racket/master] Fix syntax test harness to work with compiled tests. - Vincent St-Amour 16:29 racket: [racket/master] Fix props. - Vincent St-Amour 16:29 (part) racket 16:34 (quit) dherman: Quit: dherman 16:34 (join) tauntaun 16:36 (join) mithos28 16:39 (join) dherman 16:44 (join) yoklov1 16:55 (join) roblally 16:59 (quit) dherman: Quit: dherman 17:18 samth: tauntaun: "Growing Software" was written in keynote 17:21 samth: tauntaun: "Logical Types" is now at: http://www.ccs.neu.edu/home/samth/tmp/logical.tgz 17:25 tauntaun: samth: Many thanks...and sorry to put you to the trouble. 17:26 samth: tauntaun: no, it was easy 17:26 tauntaun: (I've downloaded "Logical Types") 17:26 samth: tauntaun: there's currently a compile error w/ the latest git 17:26 samth: b/c there's now a binding for `identity' 17:27 tauntaun: samth: I'm not sure that'll be a big deal for me, as I wanted the source mostly to correlated it with the snazzy effects; I should be able to iron out bugs by checking the docs. 17:27 tauntaun: s/correlated/correlate 17:37 Skola: how's racket for webapps :[] 17:37 Skola: is it used often for webapps? 17:38 stamourv: The Racket web server is quite nice, and it's fairly widely used. 17:39 ohwow: It's pretty neat 17:39 ohwow: I havent been using it much, but I've been skimming through the docs and playing with it for the past 3 days 17:41 Skola: I'm wondering how fast development is/can be 17:42 Skola: not for a LISP god, but on average 17:43 stamourv: The documentation is pretty good, so that probably flattens the learning curve a bit. 17:43 jonrafkind: well theres no debugger, so keep that in mind 17:45 Skola: ok 17:49 (join) bugQ 17:51 danking: jonrafkind: The REPL doesn't count? 17:51 jonrafkind: not even close 17:52 danking: jonrafkind: What does it lack? 17:53 jonrafkind: analyzing runtime data - variables, stack trace 17:53 jonrafkind: stepping through code 17:53 shofetim: Skola: after the learning curve it feels to be about as fast as PHP + a framework of your choice. You get more value as the complexity of the application increases. 17:56 danking: hmm. 17:56 danking: It would be nice to have scheme48's repl in Racket. 17:57 jonrafkind: does that have the abilities I alluded to? 17:58 danking: You can dump the current stack 17:58 danking: And I'm pretty sure you can analyze the current environment frame as well. 17:59 jonrafkind: oh yea that would be magnificent 17:59 danking: The interface to do this isn't entirely obvious to me but I've definitely looked at stack traces and replaced bogus values mid-execution after an exception was thrown. 17:59 danking: I think that last part is especially sexy. 18:13 (quit) dnolen: Quit: Page closed 18:17 (quit) yoklov1: Quit: Leaving. 18:20 (join) yoklov1 18:21 (quit) yoklov1: Client Quit 18:26 _p4bl0: danking: I think MIT Scheme has this kind of debugging features too, maybe even Guile, but not quite sure about the latter 18:44 (join) realitygrill 18:47 (quit) masm: Quit: Leaving. 19:06 (quit) lucian: Remote host closed the connection 19:16 (quit) Skola: Ping timeout: 240 seconds 19:19 jao: _p4bl0, yes, guile 2.x has that 19:21 (quit) bugQ: Ping timeout: 240 seconds 19:27 (join) bugQ 19:35 _p4bl0: jao: okay, I have the debian package and the git version on my laptop so that's why I wasn't sure I guess ^^ 19:47 (part) shofetim: "ERC Version 5.3 (IRC client for Emacs)" 20:03 (quit) tauntaun: Quit: Ex-Chat 20:03 (join) tauntaun 20:09 (quit) jonrafkind: Ping timeout: 246 seconds 20:18 (quit) fmu: Ping timeout: 276 seconds 20:22 (join) fmu 20:29 (join) dsrguru 20:30 dsrguru: hi 20:30 dsrguru: I have three servlets that link to each other 20:30 dsrguru: and each one provides interface-version, manager, and start 20:31 dsrguru: and I have an entry.rkt servlet 20:31 dsrguru: that calls another provided function in one of them 20:31 dsrguru: to render the starting page of the web app 20:31 dsrguru: since they all provide start 20:31 dsrguru: the interpreter is telling me there's a naming conflict 20:32 dsrguru: is there a way around having a servlet provide a function called "start" ? 20:32 dsrguru: (the error message was entry.rkt:12:9: module: identifier is already imported) 20:34 (join) Demosthenes 20:40 (join) dherman 20:41 (join) yoklov1 20:48 (quit) mithos28: Quit: mithos28 20:53 (quit) roblally: Quit: roblally 20:53 (join) mithos28 21:10 eli: dsrguru: You can require it with a different name, or with a prefix or whatever. But more generally, I don't see why you need to require all of them. 21:10 eli: If they're servlets, then the web server requires them for you. 21:11 dsrguru: when I didn't require them 21:11 dsrguru: and then clicked on a link 21:11 dsrguru: that pointed to those servlets 21:11 dsrguru: I would get a not found page 21:11 dsrguru: saying that that servlet didn't provide a start function 21:12 eli: That sounds like something else is wrong. 21:12 dsrguru: hmm 21:12 (join) Penten 21:12 eli: You probably didn't *provide* a `start' function -- that's needed. 21:12 dsrguru: oh 21:12 dsrguru: like literally 21:12 dsrguru: have a start function 21:12 eli: But there's no need to require the file from some other file. 21:12 dsrguru: oh 21:12 dsrguru: wait 21:12 dsrguru: should I export the start function 21:13 dsrguru: using the provide keyword 21:13 eli: Yes. 21:13 dsrguru: ok 21:13 dsrguru: just don't require that servlet's file? 21:13 eli: Yes, there shouldn't be any need to require it that I see so far. 21:13 (join) dnolen 21:14 dsrguru: oh I see 21:14 dsrguru: so in entry.rkt 21:14 dsrguru: I've defined 21:14 dsrguru: start 21:14 dsrguru: to equal a function 21:14 dsrguru: in another module 21:14 dsrguru: so I'm requiring that module 21:15 dsrguru: but now 21:15 dsrguru: running `racket entry.rkt' 21:15 dsrguru: doesn't create a web server 21:15 dsrguru: but instead 21:16 dsrguru: entry.rkt:12:9: module: identifier is already imported at: start in: (define-values (start) (new-lambda (request) (render-module2-page request))) 21:17 eli: dsrguru: You went beyond what I can understand from an irc chat -- better to send the question to the list. 21:17 dsrguru: kk 21:17 dsrguru: eli: thanks for your help anyway 21:17 eli: No problem -- and please do send it there. 21:18 (quit) Demosthenes: Ping timeout: 240 seconds 21:18 dsrguru: I will if I don't resolve it in the next few minutes 21:18 (quit) dherman: Quit: dherman 21:22 (part) mithos28 21:22 (join) mithos28 21:26 (join) neilv 21:26 (join) Demosthenes 21:46 (quit) carleastlund: Quit: carleastlund 21:46 (join) lewis1711 21:48 lewis1711: ok, non-trolling question: how "complete" is typed racket considered? is it still experimental at this stage? because I find it very difficult to use (and yes that could just be down to me:P) 21:50 eli: It's complete enough that it is no longer "experimental". 21:53 neilv: lewis1711: it is being used for some real work 21:54 neilv: the biggest thing i think it's missing is keyword arguments, which i'm very fond of 21:56 lewis1711: I find it hard to use because the error messages can be rather long and cryptic. for reference I can generally parse what ghc tells me 21:56 eli: neilv: So I have this convenient utility which packs some files into a single one in a readable format, possibly running a command on the result. 21:56 eli: For example, `multifile -c emacs /tmp/X **/*.rkt' will pack all the *.rkt files in /tmp/X, run emacs on the result, then unpack it back. 21:57 eli: It's really useful for doing global changes. 21:57 eli: Using your thing would be a challenge though... 21:57 neilv: lewis1711: that might be a good thing to mention on the email list 21:57 neilv: eli: yes 21:59 neilv: eli: it has a watchdog timer to make sure it doesn't take too long parsing. if it does, it sets a 'hopeless' flag on the buffer and very little works 22:00 neilv: (if meow-hopeless-blv (error (format "Sorry, Meow already gave up on this buffer (%s). Try restarting meow-mode, or try scheme-mode." 22:01 neilv: eli: if your thing puts a ton of files into one buffer 22:03 neilv: eli: you generally do that for search&replace across multiple files? 22:04 lewis1711: neliv, alright, will do 22:06 (quit) Demosthenes: Ping timeout: 240 seconds 22:07 dsrguru: eli: I figured it out 22:08 dsrguru: eli: in entry.rkt I called serve/servlet with a function called start 22:08 eli: dsrguru: Good. 22:08 eli: neilv: Well, if you do parse it incrementally, then the right way to do things would be to (1) parse enough to show the current screen and a bit more, (2) have an idle timer thing to do more stuff "in the background", and (3) switch back to parsing more as you move around. 22:08 dsrguru: that function conflicted with the start that I imported in the module that contained the rendering function 22:09 dsrguru: so I just had to rename the start function in entry.rkt 22:09 lewis1711: "Type Checker: untyped identifier sequence-fold imported from module in: sequence-fol" does this mean that typed racket can't do any type checking with that? 22:09 eli: neilv: The thing is that this is hard, and if instead you'd bend `font-lock' to do what you want, then you'd get it for free, 22:09 eli: s/,/./ 22:09 lewis1711: I would use vector-fold but no such function exists. 22:10 eli: lewis1711: Best to ask on the list, or wait until samth or stamourv are around. 22:10 neilv: eli: i know it's hard. font-lock gets in the way of doing it correctly, however 22:11 eli: neilv: If you do plan to do the proper thing, then you have a much larger problem that you're solving... 22:11 eli: (There were some parsing frameworks for emacs around, I think, maybe they do those things?) 22:12 neilv: if you mean "semantic" and the emacs ide stuff, i looked at that after i wrote my scanner, but it was not up to the task 22:12 eli: neilv: And yes, I do these for all kinds of difficult search/replace jobs, where the search/replace are more difficult. (Eg, refactored code that has a slightly different interface.) 22:13 (join) dherman 22:13 neilv: eli: i would like to do that kind of cross-file search&replace using sexp-based pattern-matching and manipulation anyway. and there's no reason you have to kludge it as all files in one buffer 22:14 eli: Doing some sexpr-based thing is more like resorting to some sed script -- it reduces the advantage you get from an interactive work. 22:15 neilv: eli: there's no reason it can't be interactive 22:16 neilv: and people have done various cross-file commands for emacs over the years 22:16 (quit) mithos28: Quit: mithos28 22:16 eli: Yes, it can, but I said "reduced" -- you're beyond the edit-a-buffer situation, which is not as interactive as it can be. (For example, what happens when you want to do some other kind of editing in two edge cases?) 22:17 eli: It's the same reason why this is generally more convenient than using grep-mode, for example. 22:17 neilv: i know what you're talking about 22:18 neilv: we could also do a special mode that is sensitive to file boundaries but lets you keep your single buffer 22:18 (join) mithos28 22:18 (join) Demosthenes 22:19 eli: BTW, something that is slightly related -- I was talking about Emacs vs Drr, and one thing that came up is how Emacs keeps `find-file' inside itself rather than use some gtk dialog -- you get an immediate advantage of scripting openning files via keyboard macros that you can't do otherwise. 22:19 neilv: but this is a tangent. 99% of users will not be loading all of the racket core source files into a single emacs buffer 22:20 eli: Re file boundaries -- right, that would be a solution to that -- something like clone buffer or indirect buffer, but then that goes back to the single-file interface on top of the multifile one... 22:20 eli: Yes, I'm fully aware that this is not a typical use case... 22:20 neilv: i have a prioritization, and 1GB buffers of racket source is pretty low priority 22:21 eli: Sure. 22:25 neilv: i like the idea of refactoring tools and sexp-pattern-based changes across multiple files (which could be semi-interactive) 22:26 neilv: i'd also be open to the idea of adding support for multiple-files-per-buffer. it wouldn't be TOO hard to add 22:27 neilv: we'd get around the expensive scanning part by scanning a file at a time, as needed 22:27 neilv: that would be the easy way to do it 22:28 eli: You mean doing it without my tool? That would be nice, though I was shooting for something generic because (a) it's much easier, (b) I can use other tools on it. 22:28 neilv: meow would need to recognize the file separation markers 22:30 neilv: i would not start that until i have everything else implemented, because i don't want the 1GB people to be a barrier to functionality for the 99% people 22:32 (join) rgrinberg_ 22:35 (quit) rgee: Ping timeout: 255 seconds 22:44 (quit) mithos28: Quit: mithos28 22:47 (quit) littlebobby: Quit: Ex-Chat 22:59 (quit) yoklov1: Quit: Leaving. 23:10 (quit) neilv: Ping timeout: 255 seconds 23:26 (quit) bugQ: Ping timeout: 252 seconds 23:27 (join) yoklov1 23:28 (join) yoklov2 23:28 (quit) yoklov1: Read error: Connection reset by peer 23:32 (join) bugQ 23:48 (join) jonrafkind 23:58 lewis1711: jonrafkind: I think I may have found an actual bug now ;) 23:58 lewis1711: afternoon :) 23:58 jonrafkind: in the line numbers? 23:58 lewis1711: no