00:22 (quit) vkz: Quit: vkz 00:24 (quit) dsantiago: Read error: Connection reset by peer 00:37 (join) cdidd 00:51 (quit) mceier: Quit: leaving 01:05 Kaylin: I have a question you guys, I have been getting marked down for silly things all quarter. This is part of my assignment: 01:05 Kaylin: Implement a function called eval-at which takes as input a formula of the sort defined 01:05 Kaylin: above and one line of a table of truth assignments. The form of the “one line of a 01:05 Kaylin: table of truth assignment are simply elements of what truth-table returns, i.e., a list 01:05 Kaylin: of pairs, the first element of which is a propositional variable and the second is a 01:05 Kaylin: constant, either #t or #f. For example, the call, 01:05 Kaylin: (eval-at ‘(p or( (not q) and r)) ((p #f) (q #f) (r #t))) 01:05 Kaylin: should yield #t. 01:06 Kaylin: but my function looks like 01:06 Kaylin: (eval-at '(p or( (not q) and r)) '((p #f) (q #f) (r #t))) 01:06 Kaylin: and I get errors doing it his way about p or q or r or w/e I name the variables not being defined, I'm totally unsure how I would go about fixing it, or if this is just simply a typo in the assignment but now I am paranoid 01:09 Kaylin: (define eval-at (lambda (statement values) (if (null? values) (E statement) (eval-at (substitute (caar values) (cdar values) statement)(cdr values))))) 01:09 Kaylin: is my function, E and substitute are both functions that we made for a previous assignment, but his versions of them provided for this assignment in case we didn't do a previous assignment, we could still get credit for this one. 01:12 (join) yoklov 01:15 (join) dsantiago 01:15 asumu: Kaylin: That seems like a typo, but you should probably ask your instructor. 01:16 Kaylin: ok ty 01:16 Kaylin: I did but he's notoriously slow so I figured I'd ask here and see if you guys could think of something I didn't. 01:17 Kaylin: :) 01:57 (quit) rudybot: Ping timeout: 265 seconds 02:00 (quit) offby1: Ping timeout: 276 seconds 02:27 (quit) sethalves: Ping timeout: 244 seconds 02:32 (join) nilyaK 02:33 (quit) dous: Remote host closed the connection 02:38 (quit) yoklov: Quit: computer sleeping 02:46 (join) sethalves 02:50 (quit) sethalves: Ping timeout: 260 seconds 02:52 (join) sethalves 02:55 (join) ssbr_ 02:55 ssbr_: Is there any easy way to grab the first positional command line argument? something like args[0] in Java, or sys.argv[1] in Python 02:57 nilyaK: http://docs.racket-lang.org/reference/Command-Line_Parsing.html might be what you're looking for? 02:57 ssbr_: nilyaK: it might. I was hoping for something really simple. 02:58 Kaylin: yea, I'm pretty new to this language so I'm not sure if there's something different, but I remember seeing that back when I looked through the documentation for fun :X 02:58 Kaylin: the site's pretty good though you might be able to dig something else up if it's there 02:59 ssbr_: I'm not developing a command-line app, so the extra overhead in learning is more harm than good. If the only way to access command line arguments is racket/cmdline, I guess that's what I have to do, though. 03:00 ssbr_: Hm. Is there no way to define positional arguments using racket/cmdline? 03:00 ssbr_: e.g. an argument where you do "./program foo" instead of "./program -e foo" 03:01 ssbr_: ah wait, could abuse arg-formals for this, I think. 03:01 ssbr_: nilyaK: do you know of anything more """straightforward"""? 03:01 nilyaK: I don't but I'm not the person to ask, I'm just a newbie who thought racket was pretty neat. 03:03 nilyaK: hopefully other people will respond :) 03:07 nilyaK: hmm, is this useful? or is that just for the racket compiler/IDE itself 03:07 nilyaK: http://docs.racket-lang.org/reference/runtime.html?q=command%20line#%28def._%28%28quote._~23~25kernel%29._current-command-line-arguments%29%29 03:09 (join) dous 03:14 (quit) Kaylin: Read error: Connection reset by peer 03:15 ssbr_: nilyaK: aha, that looks perfect? 03:15 ssbr_: s/?/!/ 03:15 nilyaK: :) 03:18 ssbr_: *sigh* 03:18 ssbr_: apparently I can't (include (vector-ref (current-command-line-arguments) 0)) 03:20 ssbr_: Any suggestions? I want to execute student code in the current file, and then run some tests on it (because the files don't export the function, because the prof forgot to include that line in the file skeleton) 03:20 ssbr_: (so I can't import them normally) 03:21 nilyaK: I think you're beyond my limited experience with this now sorry :( usually people are a bit more talkative 03:22 (join) vkz 03:22 ssbr_: maybe I should pick a better time than 3AM in the morning to grade assignments 03:22 ssbr_: ... nah. 03:22 nilyaK: did the students not send you the source or what? 03:23 ssbr_: nilyaK: I have source, the source is just unusable unless I alter it or "include" it somehow, because it has no exports. 03:23 nilyaK: oh you can include files I think 03:23 ssbr_: Yes, but only if I include a string literal 03:23 nilyaK: I swear I did that in the web tutorial 03:24 ssbr_: (define x "a") (include x) doesn't work; (include "a") does 03:25 ssbr_: maybe I should just dynamically construct scheme code with the appropriate include 03:25 ssbr_: (I wonder what the best way to do that is?) 03:25 nilyaK: (require "myfile.rkt") like that to add a file and put (provide (all-defined-out)) in the file you're including I think, it's used in the web example here about half way down http://docs.racket-lang.org/continue/ 03:31 nilyaK: http://docs.racket-lang.org/reference/require.html?q=all-defined-out#%28form._%28%28lib._racket/private/base..rkt%29._all-defined-out%29%29 is the link to that 03:32 (join) mithos28 03:38 (quit) EmmanuelOga: Ping timeout: 244 seconds 03:39 ssbr_: nilyaK: Right 03:40 ssbr_: but I'm not going to manually edit a bunch of files to add provide statements. I'm not even gonna do it automatically, because that's not quite trivial either (it has to go on the _second_ line!) 03:40 ssbr_: eval is the answer to everything! 03:40 nilyaK: ok :) 03:41 nilyaK: provide can be at the end I think 03:41 nilyaK: so you could open in append mode :P 03:46 (join) Technodrome 03:47 Technodrome: who here has been lucky enough to use the web stuff in racket? 03:47 nilyaK: I did the web tutorial, what do you mean by use the web stuff :O 03:51 (nick) nilyaK -> Kaylin 03:57 ssbr_: Ack, what's the right way to display an error if one occurs, but continue on in the program? 03:57 ssbr_: python and java both have a way of just printing the stack trace as it would appear if the exception bubbled up and terminated the program 03:58 ssbr_: ((error-display-handler) "foo" e) doesn't seem to show the stack trace for e, or even what error e is -- it just displays "foo". 03:58 Kaylin: well what are you doing just test cases? I mean I know there's a way to do it but how are you grading these 03:58 Kaylin: if it's test cases you can try one, it'll return an error and you can run another one 03:58 Kaylin: there's np doing that 03:59 ssbr_: Kaylin: I'm running a few tests and printing the output to stdout. 03:59 Kaylin: ah ok 03:59 ssbr_: I could make each test case a separate scheme program, it's just less convenient. Or rather, was for Python and Java 03:59 Kaylin: bc drracket has traces and such 03:59 ssbr_: (the programs are in 3 languages, so I'm trying to centralize the actual autograding) 03:59 ssbr_: (thus stdout) 03:59 Kaylin: ah ok 04:00 mithos28: I think the error-display handler is the way to go, i'm not sure why it isn't working for you 04:00 ssbr_: mithos28: http://paste.pocoo.org/show/560665/ 04:01 ssbr_: that's the output from when I did `(with-handlers ([exn:fail? (lambda (e) ((error-display-handler) e e))]) (print-preorder x))) 04:01 ssbr_: errr 04:01 ssbr_: ((error-display-handler) "oops" e) 04:01 ssbr_: as you can see, the output is useless. 04:03 mithos28: that does match my testing as well 04:03 ssbr_: Right. So How do I make it say errors like "exn:fail:contract:... divide by 0 bad!" instead? Especially with stack information included. 04:04 mithos28: do you get stack information when just doing (error 'foo) 04:04 mithos28: because I am not in the command line 04:05 ssbr_: mithos28: I do, in the command line 04:05 ssbr_: in this weird "=== context ===" section. 04:05 mithos28: ok, then it is just xrepl hiding it 04:06 mithos28: That is probably why I am having trouble, since that changes the error-display-handler 04:06 ssbr_: uhhhh 04:06 ssbr_: by "in the command line", I meant "in the repl" 04:07 mithos28: in drracket repl, or command line repl? 04:07 ssbr_: command line repl 04:07 mithos28: and that explained what I saw, not your issue 04:08 mithos28: I get the stack trace in drracket 04:08 mithos28: with you with-handlers expression 04:09 Kaylin: and pretty red arrows 04:09 ssbr_: Huh? 04:09 mithos28: i hate loading drracket, it has made my machine grind to a halt 04:09 ssbr_: this is what I get in drracket: 04:09 ssbr_: > (with-handlers ([exn:fail? (lambda (e) ((error-display-handler) "oops" e))]) (/ 1 0)) 04:09 ssbr_: oops 04:09 ssbr_: that's it: "oops" 04:10 mithos28: do you see any red x stop signs next to it? 04:10 ssbr_: No 04:10 ssbr_: Besides which, its behavior in a program is what concerns me; I get only "oops" there, too. 04:10 mithos28: i am only getting that in the command line, without the repl 04:11 ssbr_: Right. So how do I get a real error message? 04:11 ssbr_: Outside of the DrRacket REPL, which has vastly different behavior in a number of respects, apparently 04:11 ssbr_: (for example, it allows you to invoke ((error-display-handler) e e), which is not valid in general) 04:11 mithos28: It has a different way of showing the information 04:11 ssbr_: mithos28: it shows different information (to you). 04:12 mithos28: and has a more lenient way of showing that information 04:12 ssbr_: How do I show the full error message when running a racket program? 04:12 mithos28: I think what you are doing should work, and you are seeing a bug 04:12 ssbr_: Well that's just great. 04:12 mithos28: But I am also trying to find you a workaround 04:12 mithos28: haven't gotten it yet though 04:13 ssbr_: I'm using racket 5.2 from Fedora, ftr 04:13 mithos28: I'm using a nightly build from who knows when 04:15 (nick) Kaylin -> nilyaK 04:16 (quit) Technodrome: Read error: Connection reset by peer 04:16 (join) Technodrome 04:20 (join) Kaylin 04:21 ssbr_: Yeah, I'm giving up for now. 04:21 ssbr_: I'll ask again when there's more people online. :/ 04:21 mithos28: So It looks like the error is getting generated without a context for me 04:22 mithos28: most people are in EDT 04:22 mithos28: or EST now 04:22 mithos28: that will switch in a couple weeks 04:23 ssbr_: So am I! :) 04:23 ssbr_: I just have the sleep schedule of an owl on cocaine 04:23 mithos28: Well get some sleep then its almost sunrise 04:23 Kaylin is PDT 04:23 Kaylin: you and me both ssbr_ 04:23 ssbr_: mithos28: I woke up around 6PM :) 04:23 mithos28: ah 04:23 Kaylin: I'll be up till 7 or so and get up around 11AM 04:23 mithos28: Kaylin, isn't it still PST? 04:23 Kaylin: idk what it is 04:23 Kaylin: it's someting 04:24 Kaylin: what it is, is 1:24 04:24 mithos28: yes 04:24 Kaylin: and otherwise I get confused 04:24 Kaylin: I really think we should just 04:24 Kaylin: do everything in GMT 04:24 mithos28: That would be way too easy 04:25 ssbr_: UTC* 04:25 Kaylin: quick somebody submit it as a standard nobody follows 04:25 mithos28: UTC is also an abomination 04:25 mithos28: TAI 04:25 ssbr_: UTC is an abomination? do you mean the acronym 04:26 mithos28: guess how many seconds UTC thinks June 30 has this year 04:26 ssbr_: Universal Time Coordinated. does not make sense. In any language. 04:26 mithos28: there is that aswell 04:26 Kaylin: we should just call it TFT, the f'ing time 04:26 mithos28: (hint, it is not the same as June 29) 04:27 ssbr_: mithos28: Sure, but that's because time is screwed up 04:27 ssbr_: we try to base the time on rotation of the earth, but the rotation of the earth isn't constant. So something has to give. 04:27 ssbr_ thinks we should measure days in percentages 04:27 mithos28: make it, with rockets 04:28 mithos28: ssbr_: so I think your bug is that the context is not getting filled 04:29 mithos28: Which means that no workaround I can think of will help as the information isn't getting generated 04:29 ssbr_: Gross. 04:29 ssbr_: Well how do I at least display the exception? some kind of exn->string thing would be nice 04:29 mithos28: exn-message 04:31 ssbr_: yaaaay: http://paste.pocoo.org/show/560668/ 04:32 ssbr_: and just to finish off the begin with a (void) to get rid of that trailing thing... and... woo! 04:32 mithos28: I now think it might not be a bug, and just aggressive optimizations 04:32 mithos28: since the context is not meant to be exact 04:33 ssbr_: mithos28: Well, if the full source helps any: http://paste.pocoo.org/show/560670/ 04:33 ssbr_: (also the syntax highlighter there is really bad) 04:34 mithos28: I think aggressive optimizations 04:34 mithos28: What are you expecting the 'stack' to have on it when the exception is raised? 04:35 ssbr_: mithos28: In this case? Probably nothing, since no calls were done when it blew up. 04:36 mithos28: right, so it doesn't have anything to print and prints nothing 04:36 ssbr_: Well, no. I'd expect at least a line number. 04:36 ssbr_: since there's still the bottom of the stack. 04:36 mithos28: a line number from where? 04:36 ssbr_: mithos28: the eval'd code, the entire source file, doesn't matter 04:37 ssbr_: line 21, or line 10 04:38 ssbr_: Also, that reminds me, print-preorder _does_ exist. what's going on here :< 04:38 ssbr_: do includes not work like I expected them to? (glue in source code) 04:39 ssbr_: The included file is http://paste.pocoo.org/show/MBcgs6QpmxWWoHBgTYuH/ 04:39 mithos28: why are you including a module? 04:40 mithos28: that is you problem 04:40 ssbr_: mithos28: I need to grab some source code and run the function defined in it. 04:40 ssbr_: that's really it. the source code defines no exports or anything like that. 04:40 mithos28: then it is dead and optimized away 04:40 mithos28: it doesn't exist 04:40 ssbr_: How does it not exist? 04:41 ssbr_: an included file is deleted after inclusion? 04:41 mithos28: no you included a module 04:41 ssbr_: I thought I included a source file 04:41 mithos28: #lang racket defines a module 04:41 ssbr_: mithos28: so it's not allowed to have the #lang declaration? 04:41 mithos28: adds the equivalent of (module racket _ ) around the body forms 04:42 ssbr_: OK, so, how do I just grab the function from that file? 04:42 mithos28: remove the #lang should work 04:42 Kaylin: this is what happens when I try to help :( 04:42 ssbr_: Kaylin: you didn't tell me this, I did this 04:42 ssbr_: mithos28: uh, I don't suppose there's another way? 04:42 mithos28: export it 04:43 mithos28: that is the correct way 04:43 ssbr_: not that this isn't easy, I just don't like doing automated modifications of student source code 04:43 mithos28: you have the problem that this is student code right 04:43 ssbr_: mithos28: yes 04:43 ssbr_: so there's no other way than these two? 04:43 mithos28: ok so what does the student code look like? 04:43 ssbr_: if so, fine, I'll do a tail on all of them 04:43 mithos28: a #lang racket and then their function definitions? 04:44 ssbr_: mithos28: Yes. 04:44 ssbr_: they work off of the template given at http://www.cs.toronto.edu/~gfb/csc324/2012W/A0.Q3.rkt 04:44 mithos28: why not add the provide to the end? 04:44 ssbr_: mithos28: I didn't know you could. 04:44 ssbr_: Also, at this point, it's probably easier to remove the #lang than add the provide, since if I remove the #lang my include should work, yes? 04:45 mithos28: should 04:45 ssbr_: (whereas if I add a provide, I have to rewrite the include to be an import) 04:45 mithos28: to require 04:45 ssbr_: yes, that. 04:45 mithos28: you are already using eval 04:45 mithos28: so with that come many problems 04:46 mithos28: try the tail 04:46 mithos28: and next assigment have the provides in there to begin with 04:47 ssbr_: mithos28: I don't make the assignments :< :< 04:47 mithos28: are you just a grader and not TA? 04:47 ssbr_: mithos28: TAs don't create assignments in this university. 04:47 Kaylin: they don't at mine either it's very sad :( 04:47 ssbr_: They do tutorial lectures, labwork, office hours, grading, and every other bit of being a professor, but not assignment creation 04:47 mithos28: well tell who's ever in charge to do that 04:48 ssbr_: mithos28: he realized his mistake only after he gave me the assignments. "Oh, yeah, I forgot to add the provide. *shrug*" 04:48 ssbr_: I do remember him noting it. I didn't realize it was this bad. 04:48 Kaylin: it'd be awesome if they did, last quarter I got to be a TA because they didn't have enough grad students to do it 04:48 mithos28: We just used a language that provided them all automatically 04:48 Kaylin: and the assignments the poor students got were resused from like the early 90's making webpages 04:48 Kaylin: and some of the stuff was archaic I was like ok guys do it this way this is awful. 04:48 (quit) realitygrill: Read error: Connection reset by peer 04:48 ssbr_: Kaylin: most TAs would make assignments that are even worse 04:48 ssbr_: profs are bad, TAs are worse 04:48 (join) realitygrill 04:49 mithos28: I don't think the assignments I made were bad 04:49 ssbr_: but yes, there's a weird thing when, as a TA, you're handed a thing where the "right answer" is something stupid like "there are only two types of programming: imperative and logical" 04:49 ssbr_: I tend to ignore the rubric when that happens. 04:49 mithos28: but I didn't make too many, they mostly stayed the same year over year 04:50 mithos28: oh rubrics, those didn't exist for me 04:50 mithos28: we would literally decide on them right before we graded the assignment 04:52 Kaylin: I remember part of one beginning web page assignment was like change the title of your page so it is bold, I'm like wait a second the title goes in the title bar, something is wrong on the Internet! 04:53 mithos28: Yes, the assignment was to implement a remote code execution attack on the users browser and then glitch the windowing toolkit to make it bold 04:54 ssbr_: mithos28: Well, in this course I'm given free reign to decide my own rubric 04:54 ssbr_: In lower year courses, TAs are given very strict marking guidelines 04:54 mithos28: so 0s for those who don't put provides in the next assignments, after you send out an email 04:55 ssbr_: mithos28: anyway, thanks so much for your help. It appears to work :) 04:55 Kaylin: I was a nice TA, I didn't mark people down for putting the wrong subject line or giving me a link that didn't work as long as I could dig through the webserver to find it, maybe that was too nise =/ 04:55 mithos28: ok, I'll be up for a bit more if you run into any issues 04:55 Kaylin: nice* 04:55 ssbr_: Kaylin: I give people full marks even when they use tabs when the assignment says "spaces" 04:56 Kaylin: as you should, I think. 04:56 ssbr_: I don't know how they can be stupid enough to use tabs when the assignment specifically, several times, explicitly says "spaces". 04:56 mithos28: ssbr_: is that for python? 04:56 ssbr_: but their code worked completely correctly, so whatever. 04:56 mithos28: or haskell? 04:56 ssbr_: mithos28: they're supposed to take a list/S-expression and format it in a certain indented style 04:56 ssbr_: the indented style uses spaces 04:56 ssbr_: but some people used tabs instead for no discernable reason 04:56 mithos28: ah, so not their code but the output 04:56 ssbr_: Right. 04:57 mithos28: that makes much more sense 04:57 ssbr_: also, when the assignment says "tuples", why would you use "lists"? even when you name your variable "tuples"? what kind of cognitive dissonance is this 04:57 ssbr_: I swear my students have brain problems 05:03 Kaylin: I swear my professors have problems. assignments this quarter my god. implement a hash table for this assignment to parse this huge text file. you may use any function you want. 05:04 Kaylin: (uses perfect hash function) 05:04 Kaylin: NO, I wanted you to demonstrate you can handle hash collision -40%. 05:04 Kaylin: it's like 1. do you know how long it took me to come up with this? 05:04 Kaylin: 2. in the two times I talked to you and every class and every version of the assignment, it said nothing about collision. 05:06 ssbr_: Kaylin: What. 05:07 ssbr_: I'd bully my way out of that deduction and/or drop the course. 05:07 ssbr_: (also what. why did this student save his python source code in a racket file. GAAH.) 05:08 Kaylin: I've been deducted like that on every assignment since the midterm at the point I could have dropped the course so 05:08 Kaylin: I'm currently getting like a 57% F? it's pretty classy 05:08 Kaylin: if I don't for some reason not get the same BS on the next 2 assignments and the final 05:09 Kaylin: I'm going to have to take it again and def not with this professor 05:09 Kaylin: which is dumb because like, I know what I'm doing here. 05:10 ssbr_: Kaylin: Yeah. that's disgusting. :/ 05:15 (quit) vkz: Quit: vkz 05:28 (join) dedal 05:36 (join) Skola 05:40 (quit) cdidd: Ping timeout: 246 seconds 05:44 (join) cdidd 05:47 (join) MayDaniel 05:47 (quit) MayDaniel: Changing host 05:47 (join) MayDaniel 05:51 (quit) dedal: Ping timeout: 245 seconds 05:58 (join) bluezenix 06:05 (quit) mithos28: Quit: mithos28 06:13 (quit) bluezenix: Quit: Leaving. 06:21 Kaylin: look at that done with homework and going to bed early tonight 06:21 Kaylin: ish 06:22 (quit) Kaylin: Quit: sleeping 06:23 (quit) nilyaK: Quit: also sleeping 06:26 (quit) Technodrome: Quit: Leaving. 07:37 (join) masm 07:46 (join) mceier 07:54 (quit) MayDaniel: Read error: Connection reset by peer 08:03 (quit) dous: Remote host closed the connection 08:05 (join) dous 08:09 (join) JohnnyL 08:33 (join) MayDaniel 08:44 (join) Technodrome 08:54 JohnnyL: what's the purpose of a macro over a normal function? 09:07 ssbr_: JohnnyL: Doing things that functions can't, of course. 09:07 ssbr_: Perhaps you're having trouble of thinking of things that can't be done with functions? You can't define "and" or "let" with a function, but you could define them using a macro 09:09 ssbr_: (define-syntax and (syntax-rules () [(and) #t] [(and clause1 clauses ...) (if (not clause1) clause1 (and clauses...))])) 09:09 ssbr_: (totally untested) 09:09 (join) jeapostrophe 09:12 ssbr_: Probably ought to add [(and2 clause) clause] 09:12 ssbr_: eh, (and clause) ;) 09:14 (join) vkz 09:22 (join) gciolli 09:38 (quit) vkz: Ping timeout: 245 seconds 09:39 (join) dzhus 09:39 (join) vkz 09:42 (join) rudybot 09:43 (join) offby1 09:53 (quit) sethalves: Quit: ERC Version 5.1.4 (IRC client for Emacs) 09:58 (quit) Fulax: Remote host closed the connection 09:59 (quit) gciolli: Ping timeout: 260 seconds 10:07 (join) sethalves 10:11 (quit) Technodrome: Quit: Leaving. 10:12 (quit) dous: Remote host closed the connection 10:13 (join) dous 10:15 (quit) vkz: Quit: vkz 10:19 (join) yoklov 10:23 (join) vkz 10:26 (quit) offby1: Read error: Connection reset by peer 10:26 (join) offby1 10:34 (quit) MayDaniel: Read error: Connection reset by peer 10:41 (join) Fulax 10:42 (quit) Skola: Quit: Lost terminal 10:48 (quit) vkz: Quit: vkz 10:54 (join) jonrafkind 10:54 JohnnyL: > #lang slideshow 10:54 JohnnyL: read: #lang not enabled in the current context 10:57 (nick) sethalves -> sethAway 10:59 (join) gridaphobe 11:01 offby1: I have this vague idea that certain langs need a prefix 11:01 offby1: rudybot: init slideshow 11:01 offby1 twiddles thumbs 11:01 asumu: JohnnyL: Do you have a question? If that's in the REPL, it won't work. #lang only works in source files. 11:01 rudybot: offby1: error: file-or-directory-modify-seconds: `read' access denied for /home/erich/.racket/racket-prefs.rktd 11:01 offby1 rolls eyes 11:01 JohnnyL: thats a pretty smart bot! 11:02 asumu: (you can init a REPL with a language... racket -I typed/racket for example) 11:02 JohnnyL: oh ok, thanks asumu. 11:04 asumu: JohnnyL: But with slideshow experimenting in the REPL won't be very interesting because you can't see what you're doing. Better to use DrRacket. 11:04 asumu: Since it'll let you run the presentation. 11:04 JohnnyL: lok 11:04 JohnnyL: ok 11:09 (join) Shvillr_ 11:09 (quit) Shviller: Disconnected by services 11:09 (nick) Shvillr_ -> Shviller 11:09 (join) Skola 11:12 JohnnyL: what's holding behind racket? it seems pretty awesome! 11:13 ozzloy: asumu, if you play with slideshow, will rudybot display it on some vm somewhere? 11:13 chandler: "holding behind"? 11:14 asumu: ozzloy: AFAIK, it won't, but that would be neat. 11:14 offby1: ozzloy: nope 11:14 jamessan: I think he means "holding back adoption" 11:15 (join) bluezenix 11:16 JohnnyL: yes 11:16 (quit) Skola: Quit: Lost terminal 11:17 asumu: Languages get popular by luck, so it's hard to tell. 11:19 (quit) bluezenix: Client Quit 11:20 (quit) yoklov: Quit: computer sleeping 11:32 JohnnyL: do you have to pay to increase the memory limit or other features? 11:33 asumu: JohnnyL: Err, for Racket? You can turn off DrRacket's memory limit. 11:33 JohnnyL: yes 11:33 JohnnyL: ok 11:33 JohnnyL: thanks 11:34 asumu: And it's free software (in every sense). 11:34 bremner: if you pay me enough, I will press the buttons in DrRacket. 11:37 bremner: but seriously, does the memory limit only controls when garbage collection happens, or does it make some absolute limit on memory use? 11:37 jamessan: the latter, iirc 11:45 (quit) offby1: Remote host closed the connection 11:46 (join) offby1 11:46 (quit) offby1: Changing host 11:46 (join) offby1 11:49 (join) yoklov 12:08 (join) bluezenix 12:09 (quit) rudybot: Ping timeout: 246 seconds 12:11 (join) asdfhjkl 12:12 (quit) jeapostrophe: Read error: Operation timed out 12:13 (join) rudybot 12:28 (join) rotty 12:29 rotty: hmm, is it at all possible in Racket (without going thru the FFI) to launch a subprocess with a specific set of environment variables? 12:30 rotty: one could probably fake support for that by temporarily changing the parent's environment, but this certainly isn't a very clean solution... 12:39 asumu: rudybot: ^ doc putenv 12:39 rudybot: asumu: I have to read the doc more carefully ... 12:39 asumu: rudybot: doc putenv 12:39 rudybot: asumu: your sandbox is ready 12:39 rudybot: asumu: http://docs.racket-lang.org/reference/runtime.html#(def._((quote._~23~25kernel)._putenv)) 12:39 asumu: rotty: ^ 12:39 asumu: Maybe that? Or is that the unclean solution? 12:53 JohnnyL: thankshow does one use multicores under racket? 12:55 JohnnyL: how does one use multicores under racket? 12:56 jonrafkind: use the "places" library 13:01 (join) yoklov_ 13:03 JohnnyL: k 13:04 (quit) yoklov: Ping timeout: 252 seconds 13:14 JohnnyL: hm my sonar deletes my compiled raco racket exe. 13:19 (quit) yoklov_: Quit: bye! 13:20 bremner: sonar? 13:24 JohnnyL: norton 13:24 JohnnyL: it deletes the file if I run it. 13:25 bremner: ah, windows. 13:25 JohnnyL: highly suspicious activity when i run the raco exe. 13:25 chandler: Sounds like another good reason not to use Norton. 13:25 JohnnyL: chandler, what reason is that? 13:25 bremner: it's deleting random files? 13:25 JohnnyL: uh, no it's deleting files with suspicious activity. 13:26 JohnnyL: This has never happened before in my several years of using it. 13:26 bremner: seriously? 13:26 JohnnyL: except of course if there is a virus. 13:27 bremner: I see. well, anything is possible. Are there some checksums you can verify? 13:27 chandler: JohnnyL: Have you used other compilers that produce executables? 13:29 (join) Technodrome 13:30 JohnnyL: chandler: yes. 13:30 JohnnyL: vc 13:31 Technodrome: the web stuff iin racket seems "ok" so far 13:31 rotty: asumu: yea, that's the unclean solution -- what I really would want is a way to specify the environment of the subprocess, without affecting the parents environment 13:31 chandler: JohnnyL: Perhaps they hard-coded an exception for that. In any event, I'm using MSE and I haven't had any such issues, so it seems like this is specific to Norton. 13:32 JohnnyL: 'print' doesn't work in the exe 13:33 JohnnyL: god i must be spoiled expecting simple things to work. 13:35 Technodrome: using scheme on the web is a bit of a challenge I must say 13:37 asumu: Technodrome: Anything in particular challenging? 13:37 Technodrome: well it seems like racket web server stuff is the best foot forward so far in scheme 13:37 Technodrome: chicken scheme has a litle as well but i think racket is a better place to be 13:37 chandler: JohnnyL: Again, works fine here. 13:37 asumu: Oh, you meant Scheme in general? I see. 13:38 chandler: JohnnyL: How are you running the resulting exe? 13:38 JohnnyL: chandler: excluding it from my delete list and running from the command prompt 13:39 chandler: Are you using the regular command prompt or PowerShell? 13:39 JohnnyL: http://pastie.org/3520346 13:39 JohnnyL: rgp 13:39 JohnnyL: that is 13:39 (quit) rudybot: Ping timeout: 246 seconds 13:39 JohnnyL: regular command prompt 13:40 chandler: That program doesn't print or do anything unless "main" is called somewhere. 13:40 JohnnyL: http://pastie.org/3520357 13:41 chandler: Right. Your program does exactly what I'd expect it to. 13:41 chandler: Try adding (main) at the end of the file. 13:42 JohnnyL: works 13:42 JohnnyL: yeah 13:42 JohnnyL: when you said it didn't run main.. gotcha 13:42 JohnnyL: still ahve to remove it from norton's sonar. 13:43 JohnnyL: What extrenuous win32 aps is this thing calling to get such a high priority response from norton? 13:43 JohnnyL: I was planning on using racket for bin distribution, but as it stands now , that's not going to be 'fun'. 13:45 (join) rudybot 13:45 chandler: The Racket tools themselves are generated by Racket, so clearly Norton isn't deleting every executable created by Racket. 13:45 chandler: I'm guessing it's deleting new executables created by tools on the system, and they've hardcoded an exception for Visual Studio. 13:46 chandler: Does it say that the executable it's deleting matches a definition, or give any other reason for deleting it? 13:47 (join) dyoo 13:51 (join) duomo 13:52 JohnnyL: chandler: hold on 13:53 (quit) em: Ping timeout: 248 seconds 13:54 JohnnyL: hm, when you allow the exe back from quaraunteen it appears to work every time. even if you compile a new one with the same contents. if you change the source, it will quaraunteen it. 13:57 JohnnyL: here is all it reports: http://pastie.org/3520469 14:00 (quit) dyoo: Ping timeout: 245 seconds 14:01 chandler: Well, there's a 28 page thread on the Norton forums complaining about this behavior with regards to other compilers. 14:03 chandler: Given Norton's responses asking for information about the compilers that have issues with SONAR, they must be hardcoding an exception list. 14:05 chandler: So this isn't Racket's fault. Norton appears to be deliberately deleting newly created executables, with a specific list of exceptions that doesn't include Racket. I suggest you find an antivirus that isn't so hostile to less-popular compilers. 14:05 jamessan: crowd sourcing which binaries are malicious is an interesting idea, as long as you're not a developer 14:05 bremner: in fact, developing software on windows _is_ suspicious 14:05 chandler: http://community.norton.com/t5/Norton-Internet-Security-Norton/SONAR-is-deleting-programs/td-p/160660/page/8 for reference 14:05 bremner hides 14:05 rudybot: http://tinyurl.com/89v9kky 14:06 Technodrome: hmm …..do any sites run on racket that anyone knows of? 14:06 chandler: jamessan: IE does something similar already with its SmartScreen filter, but it just makes you jump through an extra hoop to run the downloaded program rather than deleting it automatically. 14:07 chandler: bremner: Perhaps he's using a PC and wants to use an OS that actually works on it. 14:07 jamessan: Debian works great on all the PCs I have *shrug* 14:08 bremner: chandler: actually, I just meant a very small fraction of windows users develop software. So the collateral damage is small. But if you want to play "your OS sucks", we can ;) 14:08 (join) samth 14:08 chandler: I was being tongue in cheek too. 14:09 chandler has been fighting with Ubuntu on a plain-vanilla Sandy Bridge ThinkPad for the past six months. 14:09 bremner: ah, which one, so I don't buy it? 14:09 asumu: Technodrome: In a sense, Hacker News. Though that's hosted on Arc, which is built on Racket. 14:10 asumu: There was one that was posted to the mailing list a month or two ago, but I can't remember it off the top of my head. 14:10 (quit) gridaphobe: Remote host closed the connection 14:11 chandler: bremner: It's a T420. But as near as I can tell, my problems aren't unique; the open source drivers for X just don't seem to work very well these days. 14:11 Technodrome: asumu: people being lazy and still just using PHP :) 14:13 asumu: Technodrome: :) Also, there are other websites we don't know about because for business reasons the consultants can't/don't say. 14:13 chandler: I eventually ended up using the oneiric kernel even though I'm running natty. It works, sort of, though anything using GL still causes random freezes, DisplayPort doesn't work most of the time, and power saving bugs mean I get about 1/2 the battery life I would be getting under Windows. 14:15 bremner sometimes wishes he wasn't addicted to the little red pointer 14:15 Technodrome: asumu: yea but you know 14:17 chandler: Oh, the hardware's very nice. I just wish I could do what I needed to do under Windows or OS X instead. 14:17 bremner: ah, I don't have that wish. 14:17 JohnnyL: i have vs2010 and i haven't had an issue. 14:18 chandler: Right. That's because Norton hardcoded an exception for VS2010. 14:19 chandler: Do the instructions at http://community.norton.com/t5/Norton-Internet-Security-Norton/SONAR-is-deleting-programs/m-p/192631?view=by_date_ascending#M96285 help? 14:19 rudybot: http://tinyurl.com/7t4ouw4 14:20 eli: rotty: The environment variable thing could use a bunch of improvements... (And for now, setting them explicitly is probably the best option; either that, or run the process via `env'.) 14:24 (quit) bluezenix: Quit: Leaving. 14:53 (join) dnolen 15:02 (join) mithos28 15:13 (join) bluezenix 15:25 (quit) jrslepak: Ping timeout: 245 seconds 15:25 (join) yukon 15:25 (join) MayDaniel 15:26 (nick) yukon -> Guest13005 15:28 Guest13005: Is there a man in the world who understands this rubbish: http://docs.racket-lang.org/reference/syntax-model.html#(part._expansion) 15:28 Guest13005: ???? 15:28 Guest13005: worst documentation ever seen! 15:28 Guest13005: unreadable!!!!!!!!!!!! 15:28 Guest13005: catastrofic! 15:30 (join) jrslepak 15:35 bremner: Guest13005: yes, people who know want to help you now. Well done. 15:35 Guest13005: well done? 15:36 bremner: I'm just not sure you have the ideal strategy for getting help. 15:37 Guest13005: I'm trying to understand expansion and phases, but from above link i unfortunately don't undestand anything 15:37 jonrafkind: Guest13005, did you see my email to the list about phases 15:37 samth: Guest13005, that's the reference documentation, not a tutorial 15:38 jonrafkind: yes, why would you expect documentation to explain anything.. what an absurd notion.. 15:38 Guest13005: jon, are you kidding? 15:38 jonrafkind: that last statement was sarcasm 15:38 jonrafkind: but there is such an email about phases 15:39 jonrafkind: https://groups.google.com/group/racket-users/browse_thread/thread/dcd257181e0eb5a7 if it helps at all 15:39 Guest13005: mail, where? 15:39 Guest13005: i'll take a look, thanks 15:39 samth: jonrafkind, you wouldn't look at the c++ reference manual for how to learn about templates 15:39 Guest13005: oh, I see that you had a problem with understanding official "documentation" too 15:39 (join) rudybot_ 15:39 jonrafkind: i would not make that assumption up front 15:39 Guest13005: no wonder 15:41 Guest13005: samt, not defend indefensible!!! 15:41 Guest13005: racket documentation is, on large scale, peace of s**t! 15:42 Guest13005: everybody knows that! 15:42 jonrafkind: well its not always enlightening to people who aren't already familiar with racket 15:42 jonrafkind: the technical content is quite accurate though 15:42 (quit) rudybot: Ping timeout: 255 seconds 15:43 jamessan: there's a difference between reference manuals and user manuals (guide, tutorials, etc.) 15:43 (quit) duomo: Quit: Linkinus - http://linkinus.com 15:43 samth: Guest13005, do you actually want help? 15:43 mithos28: I think I understand phases, and it is after reading that document. I wouldn't say that I got it on the first read through, but I wouldn't say that about most complicated topics. 15:44 samth: or do you just want to make people angry? 15:44 jonrafkind: that is like claiming that there is a difference between even and odd version numbers, odd is beta and even is stable. while that may be true not every user knows this and admonishing them for not knowing such a thing is indefensible 15:44 Guest13005: of course i want help, i'm reading jon's mail right now 15:44 bremner: nobody is admonishing. 15:44 jonrafkind: the gist seems to be that complaining that the reference manual isn't helpful is a user error 15:45 Guest13005: That's right, man! Well said! 15:46 mithos28: jonrafkind: there is the difference between constructive criticism and attacking the people who write the documentation 15:47 jonrafkind: ok, but then theres ignoring people who have a legitamite point about the documentation but make that point using offensive language 15:47 Guest13005: i enjoy doing that, because everyone else obviously think that documentation is great! :) 15:47 mithos28: If Guest13005 is the same as the other Guest***** that have posted on irc lately, then there is a large history of comments like the previous ones 15:47 jonrafkind: i am also sensitive to words but I can see a point when there is one 15:47 Guest13005: mithos: I'm racketnoob 15:47 Guest13005: and I'm proud of that! 15:48 jamessan: Guest13005: all your hostility does is make people less likely to help you 15:48 Guest13005: HAHAHAHA 15:48 mithos28: Guest13005: is there a reason that you don't use a consistent handle then? 15:48 jamessan: if you provide constructive criticism, then you're more likely to actually have things improved 15:48 jonrafkind: Guest13005, you told me you read that email earlier anyway.. 15:48 Guest13005: no, there is no reason beside of pure lazyness 15:49 mithos28: I do agree that the phases documentation is hard to read, but I don't know how to make it better. I assumed that it was because it was a complicated concept, just like understudying macros for the first time. 15:50 Guest13005: mithos, have you read K. Dybvig's book on scheme? 15:50 Guest13005: clear and mice book 15:50 Guest13005: nice 15:50 (quit) cdidd: Remote host closed the connection 15:51 Guest13005: there is no such book for racket 15:51 Guest13005: and this is not coincidence 15:52 mithos28: no, but looking at the table of contents it doesn't seem to cover what I think are the interesting parts that the racket documentation does 15:52 Guest13005: exactly, mithos 15:53 mithos28: I don't understand, you don't want exact, detailed documentation on every bit of the language? You want something more like the guide? 15:53 Guest13005: but if Dybvig had written Racket documentation, then probably people would not complain 15:53 Guest13005: because Dybvig know how to write good doc 15:55 Guest13005: PLT but clique unfortunately have no idea about it, and that's the main reason why racket is not more popular (it could be, but whit such documentation, hardly ever can!) 15:56 mithos28: I'm not following your point, reading Dybvigs documentation on macros it seems very similar to the racket documentation 15:56 Guest13005: ok, that's your opinion 15:57 Guest13005: i thinkdybvig's doc is much clearer and better written 15:57 mithos28: can you point me to a specific point where you think that is true? 15:57 Guest13005: no i can't: I can point you to whole book :) 15:58 mithos28: So you are saying that every single definition in Dybvig is clearer than the corresponding one in the racket documentation? 15:58 mithos28: I find that hard to believe 15:58 Guest13005: Yes! :) 15:59 mithos28: look at cons 16:00 mithos28: I would argue that racket documentation is cleaner, because it does not refer to the elements of the pair as the car and cdr 16:00 Guest13005: unimportant 16:01 Guest13005: car and cdr has always been basic lisp concepts 16:01 mithos28: which you would not understand before learning about them 16:02 Guest13005: I have learned lisp (i.e. scheme) from that book 16:02 mithos28: you are saying that it is clearer to refer to the first element of a pair as the car of the pair? 16:02 Guest13005: but Racket doc is unreadable to me 16:02 Guest13005: I'm saying that name is not that important, but good description in book is 16:03 mithos28: eli: I thought you were against banning him, or is kicking fine? 16:04 eli: I intentionally kept it to just a kick. 16:04 (join) fftb 16:04 mithos28: ah 16:04 eli: (But a ban won't help anyway, since he's not using a single ip.) 16:04 mithos28: does anyone nowadays? 16:04 eli: In any case, I thought that last time he'd actually listen, obviously not, so I give up. 16:05 eli: (I do...) 16:05 samth does too 16:05 samth: at least at work 16:05 chandler: I run my IRC client in a screen session on a server that always has the same IP. 16:06 bremner: Let's ban chandler, because we can! 16:06 bremner: ;) 16:06 mithos28: Ah, I assumed most people connected through residential connections 16:06 mithos28: which are usually dynamic afaik 16:07 chandler: Also, a lot of people use a host mask which is linked to their identified nick. 16:07 chandler: Trolls don't tend to do that, for obvious reasons... 16:10 eli: mithos28: Home networks in the US tend to be very static... 16:11 eli: I've had a concast line since ~2003, and my IP changed just twice, IIRC. 16:11 mithos28: ok, I just assumed since they could change, that they did 16:11 eli: s/concast/comcast/ but it can just as well stay with an n. 16:16 (join) jeapostrophe 16:17 (nick) sethAway -> seth_ 16:17 (nick) seth_ -> sethalves 16:21 (quit) asdfhjkl: Quit: Leaving 16:21 (quit) MayDaniel: Read error: Connection reset by peer 16:23 (part) Technodrome 16:24 (join) Aune 16:24 (part) Aune: "L?mnar" 16:25 JohnnyL: what if you distribute binaries on windows? does it delete it too? 16:25 jamessan: what is "it"? 16:26 JohnnyL: jamessan: raco produced binaries. 16:26 jamessan: and the other "it" you refer to is that Norton product? 16:27 JohnnyL: yes, or antivirus software in general. 16:27 JohnnyL: windows platforms seems 'fresh' in these parts. 16:27 JohnnyL: jamessan: are you using windows too? 16:27 jamessan: if so, I have no clue how it decides what to delete and what not. I personally haven't used anti-virus software in years unless I was forced to 16:30 JohnnyL: you let people force you to do stuff you don't like? 16:30 jamessan: I don't have control over the base software installed on my work computer 16:30 jamessan: so, in that sense, yes 16:31 JohnnyL: then rally man... OWS! 16:31 jamessan: and that's the only Windows computer I use 16:32 JohnnyL: well i'm wanting to build a distributed system, and i'd like to use html as the front end while harnessing my users pc cpus. 16:33 chandler: JohnnyL: I'm having no trouble with MSE. I have no clue what other antivirus programs do. 16:36 (join) Kaylin 16:42 eli: jeapostrophe: ping 16:42 Kaylin pongs loudly. 16:45 JohnnyL: chandler: my question is, if I distribute (via msiexe or whatever), do I have to worry about norton's sonar like checker? 16:45 JohnnyL: I am thinking perhaps there is a way I can make an entry in the registry. But clueless ... 16:45 chandler: It looks like anyone who distributes software will have to worry about such things. Norton mentions that code-signed executables don't trigger as severe a response, so you may want to look into signing your program. 16:46 cky: Curious minds want to know: Currently in Racket, shuffle is implemented by sorting the given list with random keys. Is there a reason why this approach is used instead of the more straightforward Fisher-Yates shuffle? It seems both cases involve copying the list to a vector, doing its thing, and copying back. (At least if I understood sort's internals correctly.) 16:47 JohnnyL: chandler: ok thanks. 16:47 cky: Sorting is at best O(n log n); Fisher-Yates shuffle is O(n). 16:47 JohnnyL: btw, any way to make the executable smaller? 4 megs for hello world is a bit silly. 16:49 chandler: Use #lang racket/base instead of #lang racket in your modules, and import specific racket/foo libraries as necessary. That should help reduce size, though it'll still always be larger than something produced by Visual C++. 16:49 eli: cky: It's not intended to be used in cases where you care about the runtime, but if you really want to go to such levels, there was a discussion at some point about getting even probabilities for all possible results, and the conclusion was that the random decorate-sort-undecorate works best. 16:49 eli: (I just remember that conclusion, the details of such things are not something I'm interested in...) 16:50 eli: And it just happens that in terms of code, the current thing is trivial. 16:50 cky: eli: I see. I understand that rationale quite well, and I also know how to work around that unevenness even for a Fisher-Yates shuffle. 16:50 cky: But, fair enough about trivial. 16:50 cky: I might make a Fisher-Yates shuffle (accounting for the unevenness, yes) my first PLaneT module. ;-) 16:51 JohnnyL: chandler: thank you! :) 16:51 cky: Which can be used by parties who do want a O(n) shuffle. 16:55 eli: cky: I have some code to randomize lines, which I think uses that or some modification for reasons that I don't remember. 16:55 cky: Cool, so I guess you can extract that out into a module if you haven't already. 16:56 cky: (More just trying to gauge if I'm duplicating work by making such a module myself. :-)) 17:00 eli: cky: Email? 17:01 cky: eli: Sure. cky944@gmail.com 17:03 eli: cky: Sent. 17:06 cky: Cool. Interesting approach about using a ring, which I presume is a shrinkable-without-copying vector. 17:06 cky: (Well, logically shrinking, anyway. The vector isn't physically shrunk, of course.) 17:10 cky: Related: http://stackoverflow.com/a/4565055/13, just another case of "nothing new under the sun". 17:16 (quit) jeapostrophe: Read error: Operation timed out 17:22 (quit) fftb: Remote host closed the connection 17:36 (join) asdfhjkl 17:41 (join) duomo 17:46 (quit) Kaylin: Read error: Connection reset by peer 17:46 (join) nilyaK 17:53 (quit) nilyaK: Quit: Leaving. 17:59 (quit) chromati`: Ping timeout: 265 seconds 18:00 (join) anRch 18:14 (quit) anRch: Quit: anRch 18:18 (join) anRch 18:28 (join) gridaphobe 18:29 (nick) rudybot_ -> rudybot 18:43 (quit) samth: Ping timeout: 276 seconds 18:53 (quit) dzhus: Remote host closed the connection 19:02 (quit) mceier: Quit: leaving 19:07 (quit) anRch: Quit: anRch 19:07 (join) samth 19:28 (quit) bluezenix: Quit: Leaving. 19:51 (join) francisl 19:59 JohnnyL: racket rocks! 19:59 offby1: rocket racks. 19:59 samth: JohnnyL, glad you're enjoynig it 19:59 offby1: for easier launching and storage. 19:59 samth: *enjoying it 20:04 eli: (Somehow, this feels like the perfect pun for offby1...) 20:05 offby1: isn't "enjoined" some sorta legal term? 20:05 eli: offby1: Actually looks like a popular term for fireworks people. 20:05 offby1 's pun-fu is but weak 20:06 eli highly disagrees. 20:06 eli: (There's also http://www.rocket-rack.com/ which is completely unrelated.) 20:06 offby1 thinks of Herbie Hancock 20:07 (join) RPR 20:10 RPR: samth On typecheck independence of Index <-> Fixnum. i.e. I want to use Index types and preform efficient Fixnum ops on them. fx+, fx- etc. Realistically is it common for an Racket O/S impl to have the size of Index exceed Fixnum? 20:10 samth: no, index is gauaranteed to be smaller than fixnum 20:11 RPR: According to the typechecker? 20:11 samth: If you use index types, the typechecker can often insert fixnum ops for you 20:11 samth: yes, the typechecker knows this about index/fixnum 20:11 samth: index is basically a concept we created for the typechecker 20:11 RPR: Should (fx+ 1 idx) work? if idx : Index 20:12 RPR: It fails for me. 20:13 RPR: From the doc, "For the latter two families, the sets of values included in the types are architecture-dependent, but typechecking is architecture-independent." 20:16 samth: yes, it should work 20:17 samth: RPR, you shouldn't need to use fx+ 20:18 samth: fx+ is *slower* in untyped code, b/c it does checking 20:18 samth: and typed code will insert the optimizations for you 20:18 RPR: Then what? add1 types to -> Integer. Just us + 20:18 RPR: Should I just use '+' then. 20:19 samth: yes 20:19 samth: just use + 20:19 RPR: OK, it all makes sense. I tended to use the add1 method on index vars. 20:20 samth: RPR, it can figure out that (add1 Index) is a Fixnum 20:20 samth: -> (add1 (ann 7 Index)) 20:21 samth: - : Integer [generalized from Positive-Fixnum] 20:21 RPR: hmmm 20:22 RPR: Right but the returned type is of Integer and no longer a Fixnum. 20:22 samth: no, it isn't 20:22 samth: the type of add1 is quite complicated, and the whole thing isn't printed at the repl 20:22 RPR: OK 20:23 samth: but that's producing a Positive-Fixnum 20:23 samth: and showing you "Integer" for simplicity 20:23 RPR: Got it. Thx. 20:28 (join) vkz 20:35 (quit) masm: Quit: Leaving. 20:52 (join) oneirophren 20:58 (join) jeapostrophe 20:58 jeapostrophe: eli: you pinged? 20:58 eli: jeapostrophe: Sent an email. (re the pull request) 20:59 eli wonders if that should be "panged" 20:59 offby1: Thou didst ping 20:59 jeapostrophe: eli: that looks fine, i won't be able to get to it until tomorrow afternoon, so you can merge if you'd like 21:00 jeapostrophe: eli: actually, he added no tests, so if you merge it, i'll go in and add tests afterwards 21:00 eli: jeapostrophe: OK, so I should merge it then? 21:01 jeapostrophe: sure 21:01 eli: ok. 21:07 (join) EmmanuelOga 21:19 (join) kvda 21:29 (quit) jeapostrophe: Read error: Operation timed out 21:55 (quit) asdfhjkl: Quit: Leaving 22:03 (join) nilyaK 22:26 (join) emma 22:28 (quit) rudybot: Ping timeout: 248 seconds 22:29 (quit) offby1: Read error: Connection reset by peer 22:30 (join) offby1 22:30 (join) rudybot 22:31 (quit) offby1: Changing host 22:31 (join) offby1 22:59 (quit) emma: Ping timeout: 248 seconds 23:16 (quit) vkz: Quit: vkz 23:26 (quit) samth: Ping timeout: 276 seconds 23:42 (join) emma_ 23:45 (nick) emma_ -> emma