00:07 (quit) EmmanuelOga: Ping timeout: 244 seconds 00:51 (quit) dnolen: Quit: dnolen 00:54 (join) jeapostrophe 01:01 (join) attila_lendvai 01:03 attila_lendvai: hi! I'll need to write a program for an embedded device (32MB ram, a credit card reader with GSM connection and a smaller LCD) and it only has a C based SDK. can racket compile to C? and does it have a treeshaker to have a chance in fitting into 32MB? 01:05 freakazoid: attila_lendvai: You might want to look at Chicken or Gambit if you want to compile to C 01:06 attila_lendvai: yep, they will be my next station, but I prefer racket's philosophy and would go with it unless it's unreasonable (e.g. no C backend. I don't feel like implementing one only for the sake of this project... :) 01:06 freakazoid: attila_lendvai: Though it actually looks like you can compile to C with raco 01:07 freakazoid: http://download.racket-lang.org/docs/5.1.3/html/raco/ext.html 01:07 attila_lendvai looks 01:07 freakazoid: I haven't had reason to do that yet so I hadn't looked for it 01:07 freakazoid: found that via google 01:08 mithos28: From what I remember of other peoples attempts, racket does not like being run in low memory environments 01:09 freakazoid: attila_lendvai: I suspect that still needs to be loaded into a racket VM though 01:09 attila_lendvai: hrm, that page suggests that it's more like a shared object to be loaded into a running racket vm, than a standalone C app ready for compilation 01:09 mithos28: I just launched a interactive shell, with just xrepl loaded and it using 37 megs 01:09 mithos28: attila_lendvai: you are going to need a running racket vm 01:09 freakazoid: attila_lendvai: yeah that 01:10 freakazoid: racket is big 01:10 mithos28: batteries included 01:10 attila_lendvai: what I would need is a compilation mode that emits C code with a main(), and a tree shaker that throws out unreachable stuff (I know it's only an approximation, but I'm ready to live without calling compile at runtime and fooling around with intern/funcall) 01:10 freakazoid: Chicken definitely does that 01:10 freakazoid: you can get reasonably small executables 01:11 freakazoid: The C compiler and linker do that for you :) 01:11 freakazoid: though you can't call eval obviously 01:11 freakazoid: I guess I shouldn't say "definitely" but I'm pretty sure it does 01:12 mithos28: attila_lendvai: I don't think racket supports that mode of operation 01:13 attila_lendvai: I'm a common lisper, and long been looking at racket, but looks like it won't be an opportunity to delve into it... we were very much on the same wave length with Felleisen when I met him on a conference... 01:14 freakazoid: this is why you should always have at least ten side projects going 01:14 mithos28: you might want to take a look at https://github.com/stamourv/picobit 01:14 freakazoid: oh that's awesome 01:14 mithos28: It looks like stamourv is still maintaining it 01:15 attila_lendvai: mithos28: yep, read about it once. thanks for the link! 01:15 attila_lendvai is busy making notes :) 01:15 mithos28: if you come back closer to midday EST you might be able to ask him about it 01:22 attila_lendvai: picobit is more for the tiny controllers, and as that time is quickly making it obsolete compared to the scheme->C compilers 01:36 (quit) zerokarmaleft: Ping timeout: 258 seconds 01:42 (quit) jeapostrophe: Ping timeout: 244 seconds 01:43 (join) zerokarmaleft 02:00 (quit) freakazoid: Quit: Computer has gone to sleep. 02:04 (join) fridim_ 02:53 (quit) jonrafkind: Ping timeout: 260 seconds 03:55 (join) ahinki 03:59 (join) Shvillr_ 03:59 (quit) Shviller: Disconnected by services 03:59 (nick) Shvillr_ -> Shviller 04:01 (quit) Shvillr: Ping timeout: 244 seconds 04:02 (join) Shvillr 04:21 (join) keenbug 04:21 (join) masm 04:34 (quit) mithos28: Quit: mithos28 04:55 (join) noelw 05:22 (join) ambrosebs 05:23 (quit) Shvillr: Quit: bye 05:24 (join) Shvillr 05:35 (quit) realitygrill: Quit: realitygrill 06:14 (quit) noam: Read error: Connection reset by peer 06:14 (join) noam 06:28 Shvillr: Hello guys. Do I understand correctly that a module written in Typed Racket can be used in regular Racket just fine? 06:29 (part) si14 06:31 noelw: Yes, except if it uses polymorphism I believe 06:34 Shvillr: Ah, I see. A pity. 06:34 Shvillr decides to try it just to make sure. 06:35 Shvillr: noelw: does this count as polymorphism: (: sum-list ((Listof Number) -> Number)) 06:35 noelw: NHo 06:35 noelw: Errr... 06:35 noelw: no 06:36 Shvillr: What about (: list-length (All (A) ((Listof A) -> Integer))) 06:36 Shvillr: (I'm just copypasting stuff that seems relevant from the docs, you see) 06:37 noelw: Yeah, list-length is polymorphic in the type A 06:38 noelw: But, don't trust me. Try it :) 06:38 Shvillr: Yup, doesn't work in untyped code. Lets see if I'm using it right by doing the same thing in typed code... 06:41 Shvillr: Nope, I had a mistake in my code and once I fixed it, it worked fine from both typed and untyped code. 06:41 Shvillr: So... Yay? 06:43 noelw: I guess so 06:44 Shvillr: Great! 06:44 Shvillr: Thank you. 06:57 Shvillr: BTW, is there any place I can read more about Typed Racket? Refinements seem to be an interesting feature, but they are only very briefly mentioned in the docs. Basically, I'm dreaming of writing a library using compiler-enforced Apps Hungarian. 07:03 (join) bluezenix 07:14 noelw: I guess Sam's papers 07:14 noelw: http://www.ccs.neu.edu/home/samth/#research 07:16 ambrosebs: In Typed Racket, what's the difference between make-Base and def-type? 07:16 ambrosebs: they seem similar 07:20 Shvillr: So, samth is the guy to go to with tricky Typer Racket questions. Good to know. :D 07:30 (join) francisl 08:04 (join) ApeShot 08:04 ApeShot: Anyone else here using Geiser with Racket? 08:05 ApeShot: I'm getting a mysterious error that I can't reproduce in either DrRacket or in a terminal. 08:05 ApeShot: But the error is from Racket itself, something about a cycle detected during module loading 08:05 ApeShot: Yet the exact same code works in Dr Racket 08:06 noelw: o.O 08:21 (quit) francisl: Quit: francisl 08:29 (join) metadave 08:32 (join) Burlingk 08:42 ApeShot: The only reason I want to use emacs is that I am editing tons of files at once, and Dr Racket + Unity makes that pretty hard to get right. 08:42 ApeShot: It can be difficult to find the file you want at short order. 08:42 ApeShot: Or to view multiple buffers at once. 08:42 ApeShot: I am fine with only semi-interactive development 08:47 noelw: I don't know what's causing the error 08:47 noelw: Does it occur if you turn geyser off? 08:52 (join) EmmanuelOga 09:01 (join) mceier 09:28 (quit) mceier: Quit: leaving 10:03 (nick) samth_away -> samth 10:05 samth: attila_lendvai: there's now an arm port of picobit 10:06 samth: Shvillr, that `list-length' function should work across typed/untyped boundaries in 5.2 10:06 samth: (probably also in the releases before that) 10:06 Shvillr: Yup, it works fine. 10:07 samth: rudybot: help 10:07 rudybot: samth: bug ..., help [], version, quote, source, url, seen , uptime, init [], eval ..., give ..., apropos ..., desc , doc , later "tell" ... 10:07 Shvillr: It was my mistake that caused it to break. 10:07 samth: rudybot: later tell freakazoid `match' should generate basically the exact code you expect 10:07 rudybot: minion: memo for freakazoid: samth told me to tell you: `match' should generate basically the exact code you expect 10:07 samth: try it in the macro stepper 10:27 (join) anRch 10:35 (join) MayDaniel 10:38 (quit) ambrosebs: Remote host closed the connection 10:38 (join) ambrosebs 10:42 stamourv: freakazoid: Re Racket->C, IIRC, that was vestigial code that was removed recently. 10:43 stamourv: attila_lendvai, mithos28: I still work on Picobit when I can. I have plans for Racket integration. 10:43 stamourv: As for it being obsolete, I wouldn't say so. Small microcontrollers are still everywhere, and they're still a pain to program. 10:44 stamourv: Sure, larger microcontrollers are taking over some domains, but smaller ones are replacing non-programmable HW as well. 10:44 stamourv: attila_lendvai: But if you have 32M, Picobit can't use all that, so it's probably not a good fit. 10:45 stamourv: tonyg worked on reducing Racket's footprint, what he has may be a good starting point. 10:45 stamourv: attila_lendvai: https://github.com/tonyg/racket-openwrt 10:48 stamourv: ambrosebs: `make-Base' and `def-type' are internal to TR's implementation, so you shouldn't need to use them. 10:48 stamourv: But if you want to know the difference, `def-type' defines 10:48 stamourv: "kinds" of types. 10:49 stamourv: Base type is a kind of type. 10:49 stamourv: And `make-Base' defines a type, which is of the base type kind. 10:51 ambrosebs: stamourv: I'm trying to port TR to clojure, so this is very useful 10:51 stamourv: Neat! 10:51 stamourv: Did that answer your question? 10:52 stamourv: If you want to know more, ask away, samth and I can help you with that. 10:52 (quit) ApeShot: Remote host closed the connection 10:54 ambrosebs: my understanding was that make-Base was for making types with zero fields. But it also defines any types created by `make-Base' to be of kind Base? 10:56 ambrosebs: is the Base kind useful, or just a shortcut for making types with zero fields? 11:00 (join) freakazoid 11:00 samth: ambrosebs: `Base' is not, in general, a useful category by itself 11:00 samth: it's just a way to define simple built-in types 11:01 samth: stamourv: make-sequence works on neither flvectors nor integers 11:01 samth: which we should fix 11:01 (quit) anRch: Quit: anRch 11:02 stamourv: samth: Well, base types need to be recognized specially for contract generation, don't they? 11:02 stamourv: As for `make-sequence', do you mean in TR, or in general? 11:02 samth: stamourv: in TR 11:02 samth: like this: 11:03 (quit) ahinki: Quit: ChatZilla 0.9.87 [Firefox 9.0/20111122192043] 11:03 samth: rudybot: init typed/racket 11:03 rudybot: samth: your typed/racket sandbox is ready 11:03 samth: rudybot: (for ([i 7]) (display i)) 11:03 rudybot: samth: error: Type Checker: Summary: 2 errors encountered 11:03 samth: stamourv: like that 11:03 samth: also, Base is recognized for contract generation, but that's just about the implementation 11:04 (join) anRch 11:04 samth: all of the things constructed with `make-Base' could be split out into separate `def-type's without changing anything meaningful 11:04 samth: ok, gotta run for a bit 11:05 stamourv: samth: I'll look at `make-sequence'. 11:05 samth: probably just needs more cases in the type 11:24 ambrosebs: what is the #:key field of `def-type'? 11:29 stamourv: Keys are pieces of extra info attached to types to tell them apart quickly. 11:30 stamourv: That is, if you want to know that types are disjoint, you can look at their keys. If they're different, you know right away that they're disjoint. Otherwise, you have to check the hard way. 11:30 stamourv: It's just an optimization. 11:30 stamourv: (Which is why they are not used everywhere.) 11:31 stamourv: By the way, if you're trying to understand how TR works, I recommend reading the papers. 11:32 stamourv: The implementation is full of shortcuts and optimizations that obscure the general concepts, but are necessary to make the whole thing work with decent performance. 11:34 stamourv: Once you understand the ideas, the implementation will be easier to understand. 11:34 stamourv: And `rep-utils.rkt' may not be the best place to start either. It's one of the scariest pieces of code I've ever seen. 11:35 stamourv: And it's better than it used to be. 11:49 (join) dnolen 11:50 tonyg: stamourv: I didn't really achieve anything in the way of memory-reduction. 11:51 tonyg: stamourv: No - I didn't achieve anything at all in the way of memory reduction. 12:06 (quit) anRch: Quit: anRch 12:07 ambrosebs: stamourv: I've read a few of the TR papers and I found it difficult to relate them back to the implementation. The process of digging through the code base has made things more concrete for me 12:07 ambrosebs: stamourv: so I've been reading a bit, and porting a bit :) 12:07 ambrosebs: of course a prototype 12:08 ambrosebs: it's also a hilarious way of learning Racket 12:12 (quit) elliottcable: Quit: best short-url ever. 12:13 (join) elliottcable 12:16 (join) realitygrill 12:21 (join) mithos28 12:25 (quit) freakazoid: Quit: Computer has gone to sleep. 12:41 (quit) MayDaniel: Read error: Connection reset by peer 12:48 (join) jonrafkind 12:51 (join) ahinki 12:53 (join) francisl 12:54 (join) RackN00b 12:56 (quit) francisl: Client Quit 13:01 RackN00b: Hello Racket gurus! I'm trying to put together some interesting challenges for the rest of my class in preparation for our final - I did this for the midterm and it was a huge hit. Any suggestions? I've thought of two: 1) a) Write a function that computes the n-th partial sum of the taylor approximation for sin. The function should comsume an argument to the sin function and an index integer representing the degr 13:01 RackN00b: the approximating polynomial. b) write a function that consumes a number for which to evaluate sin and a number that indicates the error of the approximation. The function should produce the degree of the polynomial required to obtain a result within the allowed error and the value of the approximation. 2) This is the one I need help with. Write a function that consumes two symbols, an origin and a destination an 13:01 RackN00b: determines the most direct route from the origin to the destination. The function will have to reference an adjacency list I will supply. I would also like to ask for a function that also consumes the weights of each route and produces the cheapest route. As a final challenge, I would like to add a time-constraint by saying that for every extra hour, the cost increases by a certain amount... I'm stuck on how to c 13:01 RackN00b: the adjacency list, however. Well, I mainly need to figure out how to prescribe weights to a path - any ideas? 13:05 (join) realitygrill_ 13:05 (quit) realitygrill: Read error: Connection reset by peer 13:05 (nick) realitygrill_ -> realitygrill 13:13 RackN00b: No one? 13:21 (join) freakazoid 13:24 (join) Lajla 13:28 (join) mithos28_ 13:34 (quit) noam: Ping timeout: 252 seconds 13:34 (join) noam 13:35 (quit) noam: Read error: Connection reset by peer 13:35 (join) noam 13:43 (quit) noam: Read error: Connection reset by peer 13:44 (join) noam 13:55 (join) MayDaniel 14:01 (quit) bluezenix: Quit: Leaving. 14:10 attila_lendvai: stamourv: thanks for the info! I'm heading to bed now, but will look into those tomorrow. that racket-openwrt is especially interesting... :) I wouldn't be surprised if the device had openwrt running on it... 14:11 freakazoid: attila_lendvai: Wow, so you found a way to use Racket for embedded stuff? Awesome 14:12 attila_lendvai: freakazoid: read the backlog. stamourv suggested things and commented on my earlier inquiry 14:12 freakazoid: I don't have backlog :( 14:12 freakazoid: I don't use a bouncer 14:12 freakazoid: Oh, logs in the topic 14:14 freakazoid: stamourv: i definitely agree with what you said about smaller µcs moving into formerly non-programmable hardware - there will likely always be a need for "small" software 14:15 freakazoid: eventually we'll be programming dust 14:17 attila_lendvai heads bedwards. thanks and see you tomorrow 14:18 (quit) dnolen: Ping timeout: 265 seconds 14:18 freakazoid waves 14:20 (quit) attila_lendvai: Read error: Operation timed out 14:36 (quit) MayDaniel: Read error: Connection reset by peer 14:40 (join) bluezenix 14:55 (join) dyoo 14:55 RackN00b: I 'll repost my request in case anyone else has joined the room. 14:55 RackN00b: Hello Racket gurus! I'm trying to put together some interesting challenges for the rest of my class in preparation for our final - I did this for the midterm and it was a huge hit. Any suggestions? I've thought of two: 1) a) Write a function that computes the n-th partial sum of the taylor approximation for sin. The function should comsume an argument to the sin function and an index integer representing the degr 14:55 RackN00b: the approximating polynomial. b) write a function that consumes a number for which to evaluate sin and a number that indicates the error of the approximation. The function should produce the degree of the polynomial required to obtain a result within the allowed error and the value of the approximation. 2) This is the one I need help with. Write a function that consumes two symbols, an origin and a destination an 14:55 RackN00b: determines the most direct route from the origin to the destination. The function will have to reference an adjacency list I will supply. I would also like to ask for a function that also consumes the weights of each route and produces the cheapest route. As a final challenge, I would like to add a time-constraint by saying that for every extra hour, the cost increases by a certain amount... I'm stuck on how to c 14:55 RackN00b: the adjacency list, however. Well, I mainly need to figure out how to prescribe weights to a path - any ideas? 14:59 (quit) ahinki: Ping timeout: 252 seconds 15:01 Demosthenes: wow ;] 15:01 Demosthenes: i was just looking for a ncurses module ;] 15:03 jonrafkind: RackN00b, ask on the mailing list 15:08 samth: freakazoid: `match' should generate basically the exact code you expect 15:08 RackN00b: jonarfkind - where be the mailing list? Sorry. new here! 15:09 samth: RackN00b: the users list, here: http://racket-lang.org/community.html 15:09 RackN00b: Sweet. thanks 15:10 samth: stamourv: http://stackoverflow.com/questions/8328564/efficient-random-number-list-sum-in-racket/8328960#8328960 15:10 rudybot: http://tinyurl.com/bul5v68 15:10 samth: a 10x speedup by switching to flvectors and then TR 15:13 samth: also, stamourv, `for/sum' is painful for TR 15:15 jonrafkind: RackN00b, also if you hit tab in your irc interface it will expand the name for you 15:15 jonrafkind: (usually) 15:16 stamourv: freakazoid: Always looking for help hacking on Picobit, if you're interested. 15:16 stamourv: Demosthenes: Did you find one? 15:16 RackN00b: jonrafkind: I like! 15:16 stamourv: I wrote a couple of terminal-control utilities for a roguelike. It's on github. 15:16 freakazoid: stamourv: Most of my interest is in building apps on top 15:18 Demosthenes: stamourv: poking around... i saw some tongue in cheek stuff on the ML that most people use FFI to access ncurses as their "learning" project for FFI. i've no interest in learning FFI, just need curses forms for a simpel data entry app. ;] 15:19 stamourv: Demosthenes: Then what I have won't work for you. 15:20 stamourv: And I thought imagemagick was the canonical FFI Hello World. 15:20 Demosthenes: its that or "cpan Curses::Form" 15:20 stamourv: samth: Read the blog post quoted in that question. It was terrible. 15:21 stamourv: Almost as bad as the one praising fexprs I read the other day. 15:21 stamourv: samth: And I'll see what I can do about `for/sum'. 15:22 samth: stamourv: i've read it 15:22 samth: i agree with the title of the blog post, but the guy seemed pretty incompetent 15:22 samth: and not nearly as bad as that fexprs bs 15:23 stamourv: He claimed that Clojure had nothing to support this kind of programming, but there is, and he just didn't bother looking for it. 15:23 stamourv: Using them, performance was similar to his favorite language. 15:27 samth: yes 15:27 samth: clojure is a fast language 15:27 samth: and thus potentially (as well as actually) interesting 15:27 jonrafkind: " In general, the trick is to make sure that it is getting compiled down to Java arrays and unboxed primitive operations. The JIT can do its magic after that point." oh yea, thats totally obvious 15:31 (join) dvanhorn 15:31 samth: dvanhorn: watch 15:32 dvanhorn: what ever happened to pregexp-quote? 15:32 samth: rudybot: (+ 3 4) 15:32 rudybot: samth: ; Value: 7 15:32 rudybot: samth: ; stdout: "- : Integer [generalized from Positive-Index]\n" 15:32 rudybot: samth: ; stderr: "Type Checker: Polymorphic function make-sequence could not be applied to arguments:\nDomains: Any (Sequenceof a b)\n Any (Sequenceof a)\nArguments: (List 'i) Positive-Byte\n in: #%top-interaction\n\nType Checker: Expression should produce 6 values, but produces 1 values of types Nothing in: #%top-interaction\n\n" 15:32 samth: oh, rudybot, how your bugs entertain me 15:32 samth: offby1: ^ 15:33 dvanhorn: rudybot: ((call/cc call/cc) (call/cc call/cc)) 15:33 rudybot: dvanhorn: your sandbox is ready 15:33 rudybot: dvanhorn: error: with-limit: out of time 15:34 dvanhorn: rudybot: (current-directory) 15:34 rudybot: dvanhorn: ; Value: # 15:35 dvanhorn: rudybot: (system "ls") 15:35 rudybot: dvanhorn: error: subprocess: `execute' access denied for /bin/sh 15:35 samth: rudybot: (banner) 15:35 rudybot: samth: ; Value: "Welcome to Racket v5.2.\n" 15:35 rudybot: samth: ; stdout: "- : String\n" 15:36 dvanhorn: I actually did have a serious question... 15:36 dvanhorn: rudybot: (require 2htdp/universe) 15:36 rudybot: dvanhorn: error: current-directory: `exists' access denied for /usr/local/src/rudybot/ 15:37 dvanhorn: rudybot: (require 2htdp/image) 15:37 rudybot: dvanhorn: error: link: reference (phase 0) to a variable in module "/usr/local/racket-5.2/collects/racket/draw/private/color.rkt" that is uninitialized (phase level 0); reference appears in module: "/usr/local/racket-5.2/collects/racket/snip/private/style.rkt" in: color% 15:37 dvanhorn: :/ 15:38 dvanhorn: rudybot: (define (twice f) (lambda (x) (f (f x)))) 15:38 rudybot: dvanhorn: Done. 15:38 dvanhorn: rudybot: ((twice add1) 0) 15:38 rudybot: dvanhorn: ; Value: 2 15:39 stamourv: jonrafkind: If you know anything about the JVM, or Clojure, or language implementation at all, it _is_ obvious. 15:39 dvanhorn: (((twice (twice (twice (twice twice)))) add1) 0) 15:39 dvanhorn: rudybot: (((twice (twice (twice (twice twice)))) add1) 0) 15:39 rudybot: dvanhorn: ; Value: 65536 15:39 jonrafkind: well thats nice, ill do my own dentistry at home from now on becuase if you know anything about the human body then dentistry is obvious 15:40 jonrafkind: do you have a tumor that needs removing? ill be over next week 15:40 freakazoid: this is the fundamental problem with smart compilers 15:40 stamourv: Neat, that tumor was getting annoying. 15:40 freakazoid: the smarter the compiler, the harder it is to tell what will perform well 15:40 freakazoid: jonrafkind: C might be a better language for you if it needs to be obvious to you what will be fast.. 15:41 jonrafkind: im just saying such things aren't obvious to everyone 15:41 freakazoid: No, compilers seem like magic to most people :) 15:41 freakazoid: And for most people it's fine to treat them that way. 15:42 freakazoid: One shouldn't worry about the performance of code until they know it's performing below how they need it to perform 15:42 stamourv: freakazoid: Working on fixing that. Coming to a DrRacket near you ;). 15:42 freakazoid: then you should profile 15:42 freakazoid: stamourv: nice! 15:42 freakazoid: stamourv: Something like "explain" in SQL? 15:42 stamourv: Actually, some of it is released already. 15:42 stamourv: freakazoid: Kind of, yes. 15:42 freakazoid: neat! 15:43 stamourv: Write a TR program in DrRacket, then click the "performance report" button. 15:43 stamourv: That'll tell you what's optimized, and what you could improve. 15:43 freakazoid: Yeah, I came to the conclusion a while ago that the "correct" way to have a smart compiler is to let the user inspect the compiled code interactively for any given piece of source 15:44 freakazoid: That's how you fix Alan Perlis's famous comment about lisp programmers 15:44 dvanhorn: rudybot: (((twice (twice (twice (twice twice)))) (λ (x) (string-append "a" x))) "rhus") 15:45 Demosthenes: hrm, chicken scheme has ncurses builtin 15:45 rudybot: dvanhorn: error: with-limit: out of time 16:04 Demosthenes: "Writing "curses" bindings is a popular recreational activity" *laugh* 16:17 (join) dvanhorn_ 16:18 (join) sstrickl 16:19 (quit) dvanhorn: Ping timeout: 244 seconds 16:19 (nick) dvanhorn_ -> dvanhorn 16:28 danking: dvanhorn: https://gist.github.com/1410935 16:33 (quit) dvanhorn: Remote host closed the connection 16:33 (join) dvanhorn 16:36 stamourv: samth: Fixed `in-sequence' with `Integer's. 16:36 samth: stamourv: wooo 16:37 stamourv: I'll do flvectors next. 16:38 stamourv: And what was the problem with `for/sum'? 16:38 stamourv: Pain is a pretty general problem. 16:38 stamourv: Was it more of a pinching or a twisting? 16:40 stamourv: Re flvectors, they are not sequences in plain Racket either. That's a bug. 16:59 (quit) Burlingk: Read error: Connection reset by peer 17:22 (quit) dyoo: Ping timeout: 265 seconds 17:30 RackN00b: Anyone have any suggestions on how to write a fairly long adjacency list without manual entering all the data? Like I'd love to enter a list of twenty cities and have DrRacket create a list with random links.... any chance on that happening or would I have to write something specific for that? 17:32 freakazoid: RackN00b: you just want something that generates random pairings? 17:33 RackN00b: yeah. It's a challenge question for the rest of my class, myself included... I'd like to enter say 20 cities, have an adjacency list created and then the challenge would be to write and algorithm that finds the most direct/shortest/cheapest routes. 17:33 freakazoid: Pick a random city, pick another random city, make sure they're not the same, make sure you haven't already generated that pair, and if not, add it to the list 17:33 freakazoid: oh 17:33 freakazoid: yeah, my method will work 17:33 RackN00b: I don't know how to work with random numbers yet so I would still have to manually enter all that data 17:33 freakazoid: why? 17:34 freakazoid: just write the function and hand in the output rather than the function as part of the assignment 17:34 freakazoid: have it generate what you would have manually written 17:34 RackN00b: It's not an assignment :P It's just so that we can all practice backtracking/working with grpahs 17:34 freakazoid: but hand it in as if you'd manually written it 17:34 RackN00b: graphs 17:34 freakazoid: ok, then just lean how to deal with random numbers 17:34 freakazoid: learn* 17:35 dvanhorn: rudybot: (random 1) 17:35 rudybot: dvanhorn: ; Value: 0 17:35 dvanhorn: rudybot: (random 1) 17:35 rudybot: dvanhorn: ; Value: 0 17:35 RackN00b: yeah... good practice anyway... cheers. 17:35 dvanhorn: rudybot: (random 5) 17:35 rudybot: dvanhorn: ; Value: 0 17:35 dvanhorn: rudybot: (random 5) 17:35 rudybot: dvanhorn: ; Value: 2 17:35 dvanhorn: rudybot: (random 5) 17:35 rudybot: dvanhorn: ; Value: 2 17:35 dvanhorn: rudybot: (random 5) 17:35 rudybot: dvanhorn: ; Value: 4 17:35 dvanhorn: rudybot: (random 5) 17:35 rudybot: dvanhorn: ; Value: 2 17:35 dvanhorn: now you understand random number generators 17:35 samth: stamourv: try summing a float sequence w/ `for/sum' 17:41 RackN00b: fair enough :D 17:42 freakazoid flips rudybot to see if he lands on his head or his tail 17:45 _p4bl0: hey there 17:46 _p4bl0: any Racket dev will be at http://www.seas.upenn.edu/~sweirich/plmw12/ ? 17:46 _p4bl0: (just before POPL) 17:54 (quit) RackN00b: Quit: RackN00b 17:54 RacketCommitBot: [racket] plt pushed 3 new commits to master: http://git.io/azrztA 17:54 RacketCommitBot: [racket/master] Allow integers as sequences in TR. - Vincent St-Amour 17:54 RacketCommitBot: [racket/master] Add group-by to unstable/list. - Vincent St-Amour 17:54 RacketCommitBot: [racket/master] Add regexp-filter to unstable/string. - Vincent St-Amour 18:04 Demosthenes: hrm, ffi assumes i know C much better than i do :P 18:12 (join) anRch 18:22 samth: freakazoid: yeah, some of us will be around 18:22 (quit) keenbug: Ping timeout: 245 seconds 18:22 freakazoid: samth: I think you meant that for _p4bl0 18:22 samth: stamourv will be presenting a paper that day at PADL 18:22 samth: _p4bl0: as above 18:22 samth: freakazoid: oops 18:23 _p4bl0: samth: nice. I'm applying for a travel grant for the workshop 18:23 _p4bl0: I don't really think I'll be choosen however, given the criterias 18:24 _p4bl0: I not a women, not hispanic, and I'm already sure that I want to do my PhD and my future career in PL research 18:26 _p4bl0: but I still have a lot of questions which the different panels they are talking about are supposed to give an answer to, plus it will be very interesting anyway 18:26 (join) RackN00b 18:28 (quit) anRch: Quit: anRch 18:38 (join) anRch 18:46 (join) jrslepak 18:47 (join) ApeShot 18:47 ApeShot: Anyone else using geiser? 18:47 _p4bl0: ApeShot: o/ 18:47 ApeShot: I can't interpter that emoticon 18:47 bremner: o/ me too 18:47 ApeShot: Is it a one eyed swordsman? 18:47 ApeShot: With a scar? 18:48 _p4bl0: ApeShot: it's a guy raising his hand to say "me!" 18:48 _p4bl0: or, in other circumstances, a high five 18:48 ApeShot: So I keep getting this error 18:48 ApeShot: module: import cycle detected at: "/home/toups/racket/collects/racket/main.rkt" 18:48 ApeShot: I can't reproduce it in Dr Racket or with racket at the command line 18:48 ApeShot: I happend which I try to `require` modules 18:49 bremner: ApeShot: can you pastebin a small example 18:49 ApeShot: Not sure I can reproduce it outside of my codebase, which is kind of large 18:49 ApeShot: But I'll give it a shot 18:49 ApeShot: Give me a few minutes 18:50 _p4bl0: ApeShot: mmm I fear I can't help you with that, if bremner can't either, wait for jao to be around (or /join #geiser) (he his the geiser dev) 18:52 ApeShot: I can reproduce it with simple code. 18:52 ApeShot: I'll paste-bin 18:53 (part) RackN00b 18:56 bremner: probably I can't help, but I can at least see if I can duplicate the problem 18:57 ApeShot: http://pastebin.com/3gepUYwf 18:57 ApeShot: The identical modules behave exactly as expected in dr racket. Or, if I start racket from the command like, I can enter m3 18:58 ApeShot: Obviously the modules are located where Racket knows about them 19:00 ApeShot: There is a tiny typo in that paste-bin 19:01 ApeShot: in m2 it should be (require geiser-test/m1) 19:01 (quit) anRch: Quit: anRch 19:01 _p4bl0: is module 3 in the geiser-test directory too? I so, why do you reference m1 and m2 module with geiser-test/ before ? 19:01 _p4bl0: oh it's teh other way around? weird 19:01 ApeShot: All three are in geiser-test 19:01 ApeShot: But I usually use global module names 19:02 bremner: no #lang racket in m3? is that on purpose? 19:02 ApeShot: Forgot to paste it 19:03 ApeShot: But its in the test version that produces the error 19:03 ApeShot: And I just confired that I can (enter! geiser-test/m3) inside a racket I start on the command line 19:03 ApeShot: Not so in geiser's repl 19:03 ApeShot: I suspect its got something to do with geiser trying to evaluate expressions in their proper context 19:04 ApeShot: Maybe it tries to load all the modules in a directory whenever loading any one of them or something? 19:05 ApeShot: Google's been pretty uninformative about "import cycle detected" errors 19:06 ApeShot: Any other Scheme IDE options? Dr Racket is really not cutting it when I need to have 2-3 files on the screen at once. 19:06 ApeShot: Not really necessary during the course of development, but during refactoring, its tough 19:07 ApeShot: I'm kind of a tool writing adict and I want to avoid hacking up my own scheme interaction mode 19:07 bremner: why don't you report the geiser bug by email? jao is usually pretty good at fixing stuff 19:08 ApeShot: Will do 19:08 ApeShot: Wish there was something like Slime for Racket 19:09 samth: afaict, that's geiser 19:14 ApeShot: Hm - it seems only to happen when I C-x C-e the require expression 19:15 ApeShot: If I start a fresh repl, I _can_ `enter!` the module. 19:15 ApeShot: Am I not supposed to eval require forms? Is that handled automatically by geiser? 19:15 ApeShot: Maybe that is the issue. 19:18 ApeShot: That seems to be it. 19:19 (join) francisl 19:19 bremner: ApeShot: does C-c C-a work ok in that buffer? 19:20 ApeShot: Yep 19:20 ApeShot: That was what I needed to do 19:21 ApeShot: That apparently automatically loads requires 19:24 ApeShot: Feel kind of dumb now! 19:31 (quit) francisl: Remote host closed the connection 19:31 ApeShot: If I have two identical structure definitions in two modules, will instances of each be equal? 19:31 (join) francisl 19:31 ApeShot: Or can I safely create a value to which I can guarantee nothing is equal by creating an empty struct and producing an instance? 19:32 samth: ApeShot: no, those will be different 19:32 samth: rudybot: init racket 19:32 rudybot: samth: your sandbox is ready 19:32 samth: rudybot: (define v (let () (struct x ()) (x))) 19:33 rudybot: samth: Done. 19:33 samth: v 19:33 samth: rudybot: v 19:33 rudybot: samth: ; Value: #(struct:x) 19:33 samth: rudybot: (define v2 (let () (struct x ()) (x))) 19:33 rudybot: samth: Done. 19:33 samth: rudybot: v2 19:33 rudybot: samth: ; Value: #(struct:x) 19:33 samth: rudybot: (equal? v v2) 19:33 rudybot: samth: ; Value: #f 19:33 samth: ApeShot: ta-da 19:33 ApeShot: hott. 19:33 (nick) samth -> samth_away 19:34 (quit) dvanhorn: Quit: dvanhorn 19:35 (join) dvanhorn 19:37 (quit) fridim_: Ping timeout: 248 seconds 19:37 (quit) dvanhorn: Client Quit 19:44 (join) dnolen 20:09 danking: xterm 20:17 jaimef: do not run xterm as root 20:26 jonrafkind: is jaimef a bot that gives out advice if you type xterm? 20:26 jonrafkind: xterm 20:26 bremner: perhaps only one advice per program. 20:26 bremner: minesweeper 20:27 jonrafkind: gnome-panel 20:31 (quit) bluezenix: Quit: Leaving. 20:38 (quit) ApeShot: Remote host closed the connection 20:38 (quit) jonrafkind: Ping timeout: 244 seconds 20:40 (quit) jrslepak: Quit: This computer has gone to sleep 20:43 (quit) masm: Quit: Leaving. 21:04 (join) jeapostrophe 21:10 (quit) freakazoid: Quit: Computer has gone to sleep. 21:10 (join) jrslepak 21:25 (quit) rudybot: Remote host closed the connection 21:25 (join) rudybot 21:39 (nick) Lajla -> PresiserpObabo 21:40 (quit) mithos28_: Quit: mithos28_ 21:56 (quit) jeapostrophe: Ping timeout: 240 seconds 22:06 (join) francisl_ 22:07 (quit) francisl: Ping timeout: 244 seconds 22:07 (nick) francisl_ -> francisl 22:08 (join) freakazoid 22:25 (quit) dnolen: Quit: dnolen 22:36 (quit) freakazoid: Quit: Computer has gone to sleep. 22:38 (join) jeapostrophe 22:43 (quit) jeapostrophe: Ping timeout: 260 seconds 22:51 (join) jeapostrophe 22:52 (quit) jaimef: Ping timeout: 244 seconds 22:55 (quit) jeapostrophe: Ping timeout: 248 seconds 22:56 (join) jaimef 23:20 (join) Debi 23:21 (quit) Debi: Client Quit 23:25 (quit) francisl: Quit: francisl 23:34 ozzloy: eli, i thought you were aggravated because you said *sigh* and because i later realized how stupid what i had said was 23:43 (join) attila_lendvai 23:43 (quit) attila_lendvai: Changing host 23:43 (join) attila_lendvai 23:50 (join) francisl 23:53 (join) jonrafkind 23:54 ozzloy: eli, the voiceless phonemes at the end of "regexp" are awkward _because_ they're at the end of the word and the language is english. that and the harsh sounding [ksp] is subject to softening (lenition) in any language. you can see it happening here http://goo.gl/ykiOk 23:56 ozzloy: but it looks like it's only been that way for about a decade 23:57 ozzloy: eli, i agree though, not that important. i was trying to convey that with "if this was SPARTAA!" 23:58 ozzloy: Pauan, neet 23:59 ozzloy: Pauan, eli, those SREs from jwz look pretty cool though!