< 1206748924 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1206749990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: how short is your prolog again? < 1206750020 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :the core is about 300 lines but I'm adding lots of primitives now < 1206750030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: does it use amb < 1206750031 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :this is in Scheme < 1206750034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1206750036 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no, just streasm < 1206750039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm working on an embedding in scheme now < 1206750039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1206750045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (cons X Y (X . Y))) < 1206750050 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: eh, so it's *growing* now? that can't be right! :P < 1206750064 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :heheh, olsner I'm not that good yet < 1206750089 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ehirid: Have you seen Reasoned Schemer by the way? < 1206750093 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1206750095 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Ehird* < 1206750125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1206750129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read little schemer though < 1206750240 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :syntax-rules is so great < 1206750294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (all? f l) (cond ((null? l) #t) ((f (car l)) (all? f (cdr l))) (else #f))) < 1206750298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: what srfi is that ^^? < 1206750312 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :all? is renamed every in SRFI-1 < 1206750386 0 :bsmntbombdood!unknown@unknown.invalid QUIT :"leaving" < 1206750392 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :This is one of my utilites < 1206750393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: I wish strings were lists < 1206750393 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(define (cons/fail car cdr) (if cdr (cons car cdr) cdr)) < 1206750396 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have to do: < 1206750405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(string->list (symbol->string var)) < 1206750418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (prolog-variable? x) < 1206750419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (every (lambda (x) (char= x (char-upcase x))) < 1206750419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (string->list (symbol->string x)))) < 1206750452 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :just (define (symbol->list symbol) (string->list (symbol->string var))) < 1206750453 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: why did you have to implement read? < 1206750455 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :er < 1206750458 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :just (define (symbol->list symbol) (string->list (symbol->string symbol))) < 1206750476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: oh, and after: < 1206750478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (human socrates)) < 1206750479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (human john)) < 1206750479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (mortal X) (human X)) < 1206750481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can just do: < 1206750485 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you are using a case sensitive Scheme O_o < 1206750486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'socrates) => #t < 1206750496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: chicken's the name. < 1206750531 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :atm I have lone symbols are variables and anything else is a 0 arity compound < 1206750548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'socrates) is (prolog-query '(mortal socrates)) < 1206750631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206750639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'socrates) => (), #t actually < 1206750642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(multiple values) < 1206750652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'X) => (socrates john), #t < 1206750653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or #f < 1206750654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unsure < 1206750708 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I was planning on (later, making a new language), which has () and [] < 1206750711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: ah, wait < 1206750721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't (moratl 'X) => ((X . socrates)), #t < 1206750722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OR < 1206750726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :((X . john)), #t < 1206750735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the multiple X thing is just an artifact of the repl < 1206750760 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :one solution < 1206750762 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :i < 1206750762 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :s < 1206750791 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'X) ;=> (((X . socrates)) . #) < 1206750807 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :((cdr)) gives you more solutions < 1206750808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Isn't that just: < 1206750816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'X) (fail) < 1206750869 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :don't think so < 1206750895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: well, i still need a truth value, surely < 1206750897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so: < 1206750907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :((X . socrates)), #t, # < 1206750971 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :what would < 1206750980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: well, the repl < 1206750982 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(human ehird) < 1206750984 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :give? < 1206750984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it says 'yes' or 'no' < 1206750997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :?- human(ehird). < 1206750997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No < 1206751000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thank you, swi prolog. < 1206751004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would probably give: < 1206751004 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :in your thing lol < 1206751008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(), #f, #f < 1206751013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what in yours? < 1206751029 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- (human ehird) < 1206751030 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206751056 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :in mine also < 1206751059 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- 0 < 1206751059 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206751061 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- 1 < 1206751064 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :yes ; no < 1206751066 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- 2 < 1206751070 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :yes ; yes ; no < 1206751075 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :n succeeds n times < 1206751117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: I meant in your return desuture < 1206751144 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :empty-stream = '() < 1206751154 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :and failure = empty-stream < 1206751184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'ehird) ;=> ? < 1206751201 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :A success is (stream-cons '() empty-stream), I don't actually have any useful values though anymore.. since variable bindings are in mutable vectors (much more efficient than term copying I had before) < 1206751207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'ehird) ;=> ? < 1206751228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also: for scheme i value elegance over practicality & speed ;) < 1206751240 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(prove (make-declarationbase) (human (ehird))) ;=> empty-stream < 1206751258 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's much more elegant than my previous too :P < 1206751269 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :since I was doing huge amounts of ridiculous computation < 1206751286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'ehird) ;=> ? < 1206751290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if (mortal 'X) ;=> (((X . socrates)) . #), < 1206751295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then (human 'ehird) ;=> ? < 1206751333 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'X) ;=> (((X . socrates)) . #) < 1206751347 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(#) ;=> (((X . john)) . #), < 1206751351 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(#) ;=> '() < 1206751364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'ehird) ;=> ? < 1206751364 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :that's how I did it before < 1206751368 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :'() < 1206751369 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :heh, somebody was recently asking in scheme about some algorithm he had, where everything was ugly and optimized < 1206751379 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :empty-stream = '() = failure < 1206751385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: sounds like CL < 1206751386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1206751389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: haha < 1206751394 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(null? '()) < 1206751404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: i can't wait for scheme with loads of !x and #a# < 1206751407 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ByteString < 1206751410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and unsafe io < 1206751412 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: consider, though: r5rs is really small. It pretty much doesn't have anything. And yet, it has vectors (efficiency) < 1206751420 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(cdr '(x)) ;=> '() < 1206751427 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :not really CL.. < 1206751435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scheme: Now just like Haskell, but with a pretty lame type system! It's about 30% fast, too. < 1206751440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: :-) < 1206751463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: You know, though (cdr '()) is obviously nonsense, it occurs to me that (rest '()) and (tail '()) are '() < 1206751464 0 :Deformative!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1206751477 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(I am always worrying about that though because I've done much more CL than Scheme) < 1206751481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So the operations on conses and lists are different, even the most fundamental ones. < 1206751497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: Well, vectors have a conceptual elegance to them. < 1206751506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Observe that you can't have conses without vectors of length 2. < 1206751514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So really the vectors are *above* the lists. < 1206751523 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(define (make-variable) (unbind! (make-vector 1))) < 1206751524 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(define (unbind! variable) (vector-set! variable 0 variable) variable) < 1206751528 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I think this is great :P < 1206751530 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think vectors are horrendously ugly, at least if you actually use them. < 1206751535 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :void *x; x = &x; < 1206751555 0 :GreaseMonkey!n=saru@219-89-58-116.dialup.xtra.co.nz JOIN :#esoteric < 1206751556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Make the failure stream #f < 1206751563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: The interface leaves much to be desired, I agree. < 1206751566 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you can bind variables into equivalence classes.. unbind on backtracking, deref etc < 1206751576 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That makes absolutely no sense :P < 1206751579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Since your thing is a cons, not a list < 1206751581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(X . redo) < 1206751586 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(a b c . #f) < 1206751595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, you don't haev that. < 1206751599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You have (list . func) < 1206751625 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(a b c d) = (a . (b . (c . (d . ())))) < 1206751643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: < 1206751643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[23:42] (mortal 'X) ;=> (((X . socrates)) . #) < 1206751643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[23:42] (#) ;=> (((X . john)) . #), < 1206751643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[23:42] (#) ;=> '() < 1206751646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I see a cons there < 1206751646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not a list < 1206751656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and look at my cute type declaration syntax: < 1206751659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; prolog-query : form -> (env ) or #f < 1206751668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a b c -> d == function < 1206751677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a or b == self-explaining < 1206751681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x : y == x is of type y < 1206751687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : = the type of x < 1206751698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So amusingly, I have type recursion with a base case. < 1206751755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: What's the function for 'Nth char in string'? < 1206751757 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(a . (lambda () (b (lambda () (c (lambda () (d . ()))))))) = (stream a b c d) < 1206751770 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :in Scheme or Prolog? < 1206751777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: and aha, but what you haev there is: < 1206751779 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :string-ref or nth/elt < 1206751780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(a lambda () ...) < 1206751785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :face it, you don't have a list < 1206751789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#f shoudl be your termination < 1206751790 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :It's a list < 1206751797 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no it's not a list < 1206751804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly! < 1206751806 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :it's a stream < 1206751809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1206751811 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Look: < 1206751812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and () is the empty LIST < 1206751815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not the empty STREAM < 1206751846 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric : ::= (a . ) | () < 1206751854 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric : ::= (a . ) | () < 1206751865 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric : ::= (a . ) | #f -- this makes no sense! < 1206751931 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :anyway I don't even use streams < 1206751949 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I built cuttable streams so I can implement !/0 < 1206751988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; prolog : form . form -> unspecified < 1206751988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (prolog form . conds)) < 1206752002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my awesome type info extends to varargs! < 1206752140 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :reading files with R5RS is nice < 1206752153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: not reading a whole file < 1206752176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (slurp-file fn) (call-with-input-file fn read-file)) < 1206752189 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :check it out http://rafb.net/p/KBesvn31.txt < 1206752198 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :reads a s-exp prolog file < 1206752201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (read-file f) (let ((c (read-char f))) (if (eof-object? c) '() (cons c (read-file f))))) < 1206752211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (read-whole-file f) (list->string (read-file f)) < 1206752216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (slurp-file fn) (call-with-input-file fn read-whole-file)) ;; fixed < 1206752228 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :oh I wrote a R5RS reader the other day < 1206752257 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :so you just pass in a dispatch table with options < 1206752284 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :that way it takes 3 lines to define the syntax of my other language (changing quoting a bit and adding new parens) < 1206752306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: is storing continuations in a global enough for backtracking? < 1206752307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think yes < 1206752321 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :should be yeah, a stack of them < 1206752330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; backtracks : (continuation) < 1206752330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OR < 1206752334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; backtracks : list of continuation < 1206752338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the latter looks nicer, really < 1206752345 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :perhaps you can make a single continuation if you join them in a clever way hm < 1206752351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: oo, i just realised something < 1206752353 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :dunno how to do cut with that though < 1206752359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i could write a type-checker for these type decls < 1206752363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because they're very mechanical < 1206752366 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the syntax is simple yet readable < 1206752373 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1206752373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; prolog-query : form -> (env ) or #f <-- really easy to test < 1206752385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it would just hook in after the macro expansion process < 1206752392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and would interact fine with dynamic functions < 1206752409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if it had a few built in things like: < 1206752410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; car : list of 'a -> 'a < 1206752413 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you should write the type checker in (or parts) in Prolog < 1206752415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; cdr : list of 'a -> list of 'a < 1206752426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; cons : 'a, list of 'a -> list of 'a < 1206752458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; map : ('a -> 'b), list of 'a -> list of 'a < 1206752461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just like ML < 1206752461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1206752488 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1206752506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: I can pop backtracks straight after using them, right? < 1206752511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since if needed the continuation will push a new one < 1206752537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahaha: < 1206752538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;; call-backtrack : -> < 1206752544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where no type after the -> means 'doesn't return' < 1206752562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Backtracks don't need arguments, do they? < 1206752695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: hmm. 'add-backtrack-here!' is a sucky name < 1206752708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (add-backtrack-here!) (call/cc (lambda (k) (add-backtrack k)))) < 1206752737 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :choice! < 1206752742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: naw < 1206752764 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :maybe you could do something giving backtracking args < 1206752793 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :thing is it's like.. "If you had gone down that path you could have seen " < 1206752803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: hmm, SHOULD i end it with ! ? < 1206752805 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :but it's only for the paths before not all < 1206752811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :internally they do mutate a global list of backtrack points < 1206752816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it's declarative as far as the user can tell < 1206752866 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1206752870 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I would < 1206752893 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you can only pop it after using them up < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (amb . args) < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (call/cc < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (lambda (k) < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (cond ((null? args) (backtrack)) < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (else (call/backtrack (lambda () (k (car args)))) < 1206752900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : (apply amb (cdr args))))))) < 1206752906 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :like a branch can have more than two choices < 1206752908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would that really be nicer with scattered !s? < 1206752931 0 :Deformative!n=joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric < 1206752936 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric ::o < 1206752966 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :if that works.. you should replace the one on http://rosettacode.org/wiki/Amb since that's *much* nicer < 1206753015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: only with my lib ;) < 1206753021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have one without a lib around here < 1206753027 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's basically that, withh 1 or 2 support functions < 1206753034 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :but < 1206753050 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I do not encourage the abbreviation of call-with-current-continuation < 1206753065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: tough. I use call/cc over the time and value my fingers. < 1206753073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not going to risk rsi for the sake of a goddamn stupid identifier < 1206753080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PLT, Chicken, ... support it. < 1206753085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If your impl doesn't, I don't care < 1206753086 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I always type it out in full :P < 1206753103 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(undefine call/cc call-with-current-continuation) < 1206753105 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1206753115 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :rm < 1206753166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: But yeah, I would have to change (backtrack) to (backtrack!) < 1206753174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and (call/backtrack ...) to (call/backtrack! ...) < 1206753190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :To me, that is not elegant. It just shows that the declarative layer was built on top of imperative primitives. < 1206753197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And exposing implementation is not good. < 1206753212 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :yeah good point < 1206753259 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1206753266 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :how do you do bag-of with amb? < 1206753272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: dunno < 1206753273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :show me bag-of < 1206753283 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I saw the Scheme in Fixnum days one, it's pretty nastly < 1206753304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Btw, I write an amb in Haskell explicitly: custom monad etc. I even made an AmbT monad transformer! http://www.haskell.org/haskellwiki/Amb < 1206753310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Amb is the list monad, interestingly. < 1206753313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And AmbT is NOT ListT. < 1206753321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AmbT is ListT done right since ListT is broken < 1206753330 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(bag-of (let ((x (amb 1 2 3 4 5))) (if (odd? x) (amb) x))) ;=> '(2 4) < 1206753341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: It's even polymorphhic < 1206753346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do a <- [1,2,3]; b <- ["hello","world"] < 1206753349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :works inside the same monad < 1206753350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1206753352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :add an amb there < 1206753372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: hm that would be hard < 1206753375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd need to stop the call/cc < 1206753380 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dynamic-wind would be involved. < 1206753443 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :cool! < 1206753447 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(AmbT) < 1206753467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: yeah < 1206753480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: that code even lets amb [] appear in any type context < 1206753494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :due to having a permanently uninstated type variable (r) and using that as a type for a function to do 'return undefined' < 1206753521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (prolog form . conds) < 1206753521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : ...) ;; chicken scheme throws an *error* on this function, because it knows that ... can never be defined here. That is too damn clever, I love it. < 1206753654 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :my code works on chicken :D < 1206753655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: for the backtrack continuations... < 1206753658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(k #f) or (k (void))? < 1206753668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm inclined to the former, because (void) should probably only be a return value. < 1206753679 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(k k) < 1206753687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Chicken is great, it marries the UNIX scripting & batch compilation way with the Scheme/Lisp REPL way. < 1206753697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's also quite fast, and has excellent libraries and ffis < 1206753699 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sounds like bash < 1206753703 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1206753708 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, the webserver it has is great < 1206753726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: 'cept bash has no FFIs, barely any libraries, and is painful to code in :) < 1206753745 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Do you know how to make a really good REPL with it (for a sexp lang but not Scheme) < 1206753761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Like readline and stuff? < 1206753767 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1206753769 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1206753770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Do you want commands at the REPL too? < 1206753771 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1206753778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You could just expose special functions of course < 1206753821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the example here: http://www.call-with-current-continuation.org/eggs/amb.html worked unmodified < 1206753825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#;4> (solve-kalotan-puzzle) < 1206753825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(f m f) < 1206753834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :amb-colelct is bag-of thouhgg < 1206753837 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :actually I have this problem I need to solve in my code first but I can't figure how to do it in an elegant (e.g. not totally ugly) way < 1206753863 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :or I could use an object system to write a single procedure :| < 1206753948 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206753950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: (~ ...) is my defining < 1206753955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(? ...) querying < 1206753956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and hmm < 1206753958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't use an object system < 1206753960 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I use FACT and TO-DERIVE < 1206753962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Chicken has really nice ones < 1206753963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but still :) < 1206753967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: ah, but mine are macros < 1206753977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (a b) c d) -> (prolog '(a b) 'c 'd) < 1206753984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(? (a b)) -> (prolog-query '(a b)) < 1206754002 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you might wanna make the macro fold the body < 1206754014 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(~ (a b) c d) ~> (prolog '(a b) (and c d)) < 1206754025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: No.. it uses its internal evaluation engine < 1206754031 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :syntax-rules does that very naturally < 1206754039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(~ (mortal X) (human X)) < 1206754043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that wouldn't work with yours < 1206754063 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you need 3 cases < 1206754076 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :zero, one, one+ < 1206754146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: what does (human 'ehird) result in yours? < 1206754160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: also, i only need one case < 1206754162 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206754164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which does fold over the body < 1206754166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but prolog body < 1206754172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: what is 'no' in scheme < 1206754179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean actually (human 'ehird) < 1206754188 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric : (display "no") < 1206754193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(mortal 'X) ;=> (((X . socrates)) . #) < 1206754196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'X) ;=> ? < 1206754199 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I get what you are asking.... < 1206754206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: You quoted that mortal example before. < 1206754212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The human one is supposedly similar. < 1206754214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What about: < 1206754216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(human 'ehird) < 1206754252 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ok #f < 1206754252 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1206754257 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :you want me to say that right? < 1206754262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: No. Just wondering < 1206754267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's a simple question, wtf is hard about it < 1206754313 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :(prove (make-declarationbase) ((make-term-converter) '(human 'ehird)) ;=> () < 1206754315 0 :timotiis!unknown@unknown.invalid QUIT :"leaving" < 1206754330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok, what if human(ehird). < 1206754374 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :% ./prolog2 < 1206754374 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- (human (ehird)) < 1206754374 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206754398 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1206754401 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :If I add that rule < 1206754433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yea < 1206754485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: also, mine will support definition at the prompt < 1206754500 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :echo "(fact (human (ehird)))" >> test.spl < 1206754502 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :> (prove (consult "test.spl") ((make-term-converter) '(human (ehird)))) < 1206754502 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :((() . #f) . #) < 1206754513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(() . #f)?! WTF < 1206754541 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/7AKTK053.txt < 1206754566 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :do you want my entire code to look at ? (353 lines) < 1206754590 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is sort of also hoping suggestions to improve  < 1206754619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: don't you bind () to #f in that thing? < 1206754627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if so, doesn't that make no damn sense whatsoever < 1206754688 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :in my previous one I returned a stream of substitutions < 1206754697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: my cut is very easy < 1206754700 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(set! backtracks '()) < 1206754859 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :so calling the cdr computed the next substitution.. now though, I have variables as mutable vectors (instead of term copying), so I don't return any substitution, but backtracking unbinds variables now < 1206754880 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: is variables as mutable vectors better? < 1206754882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it seems less elegant < 1206754885 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I could have (#f . #) infact.. the () is reduntand < 1206754890 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :It's more elegant and efficient < 1206754930 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what is #f < 1206754954 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :it means a cut was not applied in proving this goal < 1206754978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: don't you use continuations? < 1206754985 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :cuttable-stream-append-tail chops of choice points if it sees that < 1206755002 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I don't use call-with-current-continuation just streams to delay computation < 1206755100 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :one thing is with term-copying you can use EQUAL? < 1206755105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: Doesn't cut just remove all the backtrack continuations? < 1206755125 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :but with mutable variables you need to write a TERMS-EQUAL? < 1206755160 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :cut just says, "The previous choice was the right one" < 1206755174 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :so you can still have choices above and below it < 1206755232 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :did that make sense? :S < 1206755245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uhh < 1206755253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cut just means 'no backtracking before me, beyond this point' < 1206755258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so: < 1206755263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define (cut) (set! backtracks '()) < 1206755317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: right? < 1206755372 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :not exactly < 1206755381 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :for example, < 1206755381 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :foo(X) :- !, member(X, [a,b,c,d]). < 1206755382 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :foo(bar). < 1206755393 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :so now if you did this query: < 1206755394 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :?- member(A, [1,2]), foo(X). < 1206755404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: when using amb cut is (set! backtracks '()) < 1206755408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is it different for full prolog < 1206755428 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :um if you aren't implement Prolog then you can choose any semantics you like < 1206755432 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :but that's not cut < 1206755459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: it's amb's cut < 1206755461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1206755478 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :because you could A = 1, X = a; A = 1, X = b; A = 1, X = c; A = 1, X = d; A = 2, X = a; A = 2, X = b; ... < 1206755510 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :the cut just says the choice between foo(X) and foo(bar) was the right one.. but in that query you can still backtrack < 1206755583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: so do i need to handle cut in the other parts? < 1206755585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or can it be standalone < 1206755588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the other parts not know about it < 1206755647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: ? < 1206755653 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :ASCII ART < 1206755660 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/7NyUa343.txt < 1206755665 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :does that help? < 1206755717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206755721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my question was simple, an implementation one < 1206755722 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1206755727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if i implement cut do i have to design the rest of my system < 1206755729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to accomodate for it? < 1206755736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or can i add it later with no pain < 1206755746 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I added it later with no paint < 1206755748 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :I added it later with no pain* < 1206755774 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Just replaced streams with cuttable streams < 1206755791 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Actually < 1206755805 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :How does dynamic scope interact with calling a continuation? < 1206755825 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :because you might be able to just have a box with #t or #f in it denoting whether or not a cut occured < 1206755896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: what has dynamic scope got to do with it? < 1206755900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in prolog, everything is pretty much global < 1206755904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or lexical. < 1206755931 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :It's very interesting how Prolog handles binding actually < 1206756007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: ? < 1206756083 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Prolog is implicit ∃, rather than λ < 1206756104 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Is there a tarpit based on logical languages? < 1206756114 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like using the Schönfinkel stroke. < 1206756127 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or something. < 1206756172 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :what is the Schönfinkel stroke? < 1206756229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: what is [] < 1206756230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :p < 1206756232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1206756233 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :In PN, |x ab = for allx (a | b) < 1206756248 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :in Prolog [] is empty list < 1206756265 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You can define all predicate logic with it, so it is said. < 1206756316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :marshmallows: prolog is implicit [] < 1206756318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. what is that char < 1206756331 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1206756336 0 :marshmallows!unknown@unknown.invalid PRIVMSG #esoteric :Backwards E < 1206756497 0 :ehird!unknown@unknown.invalid QUIT :"Konversation terminated!" < 1206757569 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1206760600 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206760735 0 :slereah_!n=slereah@ANantes-252-1-69-1.w81-250.abo.wanadoo.fr JOIN :#esoteric < 1206760994 0 :slereah_!unknown@unknown.invalid NICK :Slereah < 1206761974 0 :Slereah!unknown@unknown.invalid QUIT :"Konversation terminated!" < 1206762126 0 :Slereah!n=slerjeah@ANantes-252-1-69-1.w81-250.abo.wanadoo.fr JOIN :#esoteric < 1206762880 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206765406 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1206766444 0 :Slereah!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206771502 0 :slereah_!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206771703 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206771815 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Read error: 110 (Connection chickened out)" < 1206773506 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1206777599 0 :clog!unknown@unknown.invalid QUIT :ended < 1206777600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1206778112 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1206778152 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1206778633 0 :sebbu!n=sebbu@ADijon-152-1-18-90.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1206783139 0 :okopol!n=oklofok@spark.turku.fi JOIN :#esoteric < 1206784385 0 :okopol!unknown@unknown.invalid QUIT :No route to host < 1206784813 0 :Judofyr_!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1206784813 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206785944 0 :okopol!n=oklofok@oklopol.yok.utu.fi JOIN :#esoteric < 1206787114 0 :bsmntbombdood_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1206787138 0 :slereah_!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206787319 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206787371 0 :slereah_!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206787756 0 :slereah__!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206787837 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206788005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, < 1206788012 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: 3DDD is zero doesn't have a matching BAD < 1206788017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you just get an empty line then < 1206788051 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :looks like a misalignment on line 340 < 1206788103 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there's a ;>:#,_ on the right end of that line, move the ;> one space to the left so it ends up as ;> :#,_ < 1206788108 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that should do it < 1206788185 0 :marshmallows!unknown@unknown.invalid QUIT :"Leaving" < 1206788267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :k < 1206788277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, can't test as I fixed my D now < 1206788277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1206788371 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It was a P, had to stretch and re-block the curve. < 1206788437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1206788457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw just looked at ccbi for F in TOYS < 1206788460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : for (auto y = ty; y < ty + j; ++y) < 1206788462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err? < 1206788475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is it trying to do exactly hm? < 1206788525 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :looks like it's looping from ty to ty + j < 1206788528 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1206788540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok that auto confuse me < 1206788545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what does auto does in D? < 1206788546 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :type inference < 1206788550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1206788666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: G doesn't work < 1206788670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in what way I wonder < 1206789654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :áa=BAD: V doesn't move correctly < 1206789654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :áa=GOOD: overlapping copy with C works < 1206789658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that werid < 1206789660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :weird* < 1206789667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I know why it doesn't work < 1206789676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because I haven't writte the code for those two yet < 1206789680 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but the odd chars < 1206789987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : case 2: space[ip.x, ip.y] = '^'; goSouth(); break; < 1206789987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : case 3: space[ip.x, ip.y] = 'v'; goNorth(); break; < 1206789990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that is from ccbi < 1206790002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't those ^ and v be the other way around? < 1206790046 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :probably, yes :-) < 1206790058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from U in TOYS < 1206790579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, any idea what cause those áa= btw? < 1206790607 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1206790610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: 01T goes up <-- hm? < 1206790637 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :1T is supposed to be | < 1206790669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it is indeed < 1206790676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so up or down seem correct? < 1206790696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :point is, I made it just call the function used for normal | < 1206790699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and normal | works < 1206790701 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and what is 0| supposed to do < 1206790710 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's supposed to go down < 1206790713 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so 01T should go down < 1206790715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :0| goes down, I tested it < 1206790721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so why would 01T go up < 1206790727 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it's your code, I don't know < 1206790737 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sound like a bug elsewhere as the same code is used in both cases < 1206790822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, wait a sec < 1206790824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: 01T goes up < 1206790828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I set a breakpoint on T < 1206790832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it didn't hit < 1206790836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so T is not even called there < 1206790837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1206791254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, when I fixed K that I had before not yet implemented, T suddenly starts to work < 1206791262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so looks like a mycology bug? < 1206791296 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :doesn't make sense to me < 1206791302 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :looking at the code for testing T < 1206791411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, where is it? hm? < 1206791417 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :end of line 422 < 1206791432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh that is a HUGE area for TOYS then < 1206791458 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yup, TOYS is over 100 lines of testing < 1206791469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw, implementing V removed the odd char in front of M, but not the odd char in front of V itself < 1206791484 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, there's probably a missing 'n' somewhere which means there's some crap on the stack < 1206791533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :implementing M fixed char in front of V btw < 1206791534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1206791560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess mycology didn't like that I did the simple ones first, instead of "in order of testing" < 1206791575 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :shrug < 1206791576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: L gets right-hand < 1206791576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: R gets left-hand < 1206791579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and those are wrong < 1206791584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :currently they do nothing < 1206791590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1206791644 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206791667 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that should be "L doesn't work at all" then < 1206791726 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: can you replace line 416, col 25, 'A', with 'n' < 1206791751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm a sec < 1206791794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no change < 1206791942 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: do you have mercurial installed? < 1206791964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes I got most distributed version control systems apart from darcs < 1206791967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and git < 1206791969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hates git < 1206791982 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: pull mycology from http://tar.us.to:8000/ < 1206791992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, however, I would need some help if you want me to use mercurial, it was like half a year ago I used it < 1206792003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my memory is kind of rusty there < 1206792015 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :one sec < 1206792028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hg somecommand I guess? < 1206792145 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hg clone http://tar.us.to:8000/ < 1206792149 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I hope < 1206792164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :destination directory: tar.us.to:8000 < 1206792166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits < 1206792178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, seems like nothing happens? < 1206792178 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :er < 1206792237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PORT STATE SERVICE < 1206792237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :8000/tcp filtered http-alt < 1206792240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is what nmap says < 1206792245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that won't work indeed < 1206792248 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I killed it now < 1206792256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why? < 1206792258 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think the hostname doesn't work, I only just updated DNS :-) < 1206792269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :88.114.235.101 < 1206792273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is what it resolves to here < 1206792275 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :88.114.224.242 < 1206792277 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :is what you want < 1206792291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm, dns update time ETA? < 1206792306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION do not want to run rndc flush because that slows down everything else < 1206792330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :destination directory: 88.114.224.242:8000 < 1206792331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206792339 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :seems to have worked now < 1206792354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok what now? < 1206792364 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :now you should have a new mycology there, see if that works < 1206792368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: L doesn't work at all < 1206792368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: R gets left-hand < 1206792369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1206792370 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1206792378 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1206792405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD:GOOD: 000p000W goes seog W000p000 :DOOG 000p000W goes through < 1206792405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :°¥@BAD: 00p100W goes through < 1206792405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :³?@BAD 000p01-00W goes through < 1206792405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :³@GOOD: X works < 1206792414 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1206792415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :somehow, I don't think that count as GOOD? < 1206792426 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, I don't think so :-) < 1206792430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that got more GOOD than BAD in it ;P < 1206792477 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: pull again, "hg pull" should be enough < 1206792486 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just to see if it works for R now as well < 1206792496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(run 'hg update' to get a working copy) < 1206792503 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that too < 1206792507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that is a reason why I selected bzr :) < 1206792522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: R gets left-hand < 1206792524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, still that < 1206792558 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(wouldn't it be easier just to comment out the relevant line in ccbi for a moment and experiment with that btw?) < 1206792579 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nah :-P < 1206792603 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alright, one more time < 1206792687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: R doesn't work at all < 1206792689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1206792691 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeh < 1206792697 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :cheers < 1206793447 0 :okopol!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1206795588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, < 1206795590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD:GOOD: 000p000W goes seog W000p000 :DOOG 000p000W goes through < 1206795590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :°¥@BAD: 00p100W goes through < 1206795590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :³?@BAD 000p01-00W goes through < 1206795590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :³@GOOD: X works < 1206795598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :all but W is now complete on TOYS < 1206795603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :W does nothing atm < 1206795619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so why such weird output < 1206795629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :doing nothing should be quite basic thing shouldn't it? < 1206797505 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :shrug < 1206797534 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1206797637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok now TOYS are implemented fully < 1206797680 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and BTW, it says clearly in mycology's readme (I think) that if you see an unimpl instruction you should reflect < 1206797693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206797699 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and the behaviour is your fault if you don't < 1206797714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, however most tests does detect such cases < 1206797726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the threading ones seems a bit more "brittle" though < 1206797733 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :doesn't matter, because it's undefined < 1206797752 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the fact that some tests detect it is incidental < 1206797798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^D^C^B^AGOOD: : on empty stack makes stack size 2 according to y$ < 1206797804 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm cat -e is interesting < 1206797812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why it print some control codes there < 1206797829 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :bugs < 1206797863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah but I wonder what the bug is and where < 1206797947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw I have an early draft for debugging protocol, your feedback would be valuable, I can put it up somewhere in one of these formats: lyx. latex, dvi or pdf < 1206797950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you select < 1206798102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, http://rage.kuonet.org/~anmaster/tmp/frontend-prococol.pdf is the pdf version, it is just a draft < 1206798386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: 000p000W goes thrugh < 1206798390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's not right hmmm < 1206798588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, request: add something like the trace mode that my interpreter got and make a binary, so I can compare and see where I go wrong :/ < 1206798598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't figure out some bugs < 1206798612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1206798625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :please :) < 1206798957 0 :atsampso1!n=ats@7hw.poik.net JOIN :#esoteric < 1206799009 0 :atsampson!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206799993 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what's wrong with the debugger < 1206800319 0 :Judofyr_!unknown@unknown.invalid NICK :Judofyr < 1206800404 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1206800492 0 :Judofyr!unknown@unknown.invalid QUIT : < 1206800570 0 :lifthras1ir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1206800570 0 :lifthras1ir!unknown@unknown.invalid QUIT :Client Quit < 1206800635 0 :lifthras1ir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1206800669 0 :lifthras1ir!unknown@unknown.invalid QUIT :Remote closed the connection < 1206800669 0 :lifthrasiir!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206800677 0 :lifthrasiir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1206800706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, because I can't easily get a list of all instructions executed < 1206800723 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :why do you need that < 1206800754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm unable to track down a bug in my interpreter, so I think the best way would be to compare the instructions exected with one that does it right < 1206800761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to see what went wrong where < 1206800770 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you probably know the coordinates where you want to compare < 1206800789 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so just use the debugger, set a break point there, and then go step by step and see what happens < 1206800835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, tried that, something goes wrong earlier I think and doesn't show up until later < 1206800870 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so set the breakpoint earlier :-P < 1206800956 0 :lifthrasiir!unknown@unknown.invalid QUIT :Client Quit < 1206800980 0 :lifthrasiir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1206801001 0 :lifthrasiir!unknown@unknown.invalid QUIT :Client Quit < 1206801007 0 :lifthrasiir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1206802782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no I'm unable to find out the cause < 1206802933 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :can't you follow what's on your stack and what's on CCBI's < 1206802944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm yeah < 1206802951 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and if/when they differ go back to see where the differing value(s) came from < 1206802973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1206802984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well did you look at http://rage.kuonet.org/~anmaster/tmp/frontend-prococol.pdf < 1206802996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders implementing it first to be able to find this bug < 1206802998 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah I looked it over quickly < 1206803006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :any comments on it? < 1206803022 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :nothing particular < 1206803040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anything ccbi will ever support if I do it and make a good debugger frontend? < 1206803044 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't read it word for word so there might be omissions or something but the general idea looks fine < 1206803062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206803091 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :does the interpreter ever send messages? or only respond to questions from the client? < 1206803363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it does send trace messages < 1206803380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and BRK for breakpoint hit and such < 1206803406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the table at the end describes that < 1206803411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :appendix a < 1206803413 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ah, tracing < 1206803419 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :is that always enabled? < 1206803431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes, do you have an objection to that? < 1206803436 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if it is, it should be disablable IMO < 1206803445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206803450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but why? < 1206803454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :performance? < 1206803458 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because if you don't need it it's pointless < 1206803471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1206803473 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you could be debugging over the net, right < 1206803488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you could but I can't imagine why anyone would want to heh < 1206803491 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so sending a lot of lines like that over a slow connection can be annoying < 1206803500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206803509 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: user runs a script on his machine, developer debugs remotely < 1206803521 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :admittedly this /is/ Funge we're talking about, but you never know ;-) < 1206803527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh, well that user got to trust the developer, as you can set funge space cells < 1206803540 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, of course < 1206803552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so "drowssap/cte/" o < 1206803553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1206803567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or i < 1206803588 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in general, in that situation, the user will do whatever they're asked anyway < 1206803595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1206803617 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, because such users aren't necessarily very tech-savvy < 1206803638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't think non-computer literate ppl would *use* funge < 1206803648 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :which is why I said "admittedly" above :-P < 1206803651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1206803701 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :okay, so... you've only got a windows debugger but you need to debug a funge script running on a *nix < 1206803704 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or vice versa < 1206803747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm ok a point < 1206803758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :most likely done over LAN though but I see your point < 1206803771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something like a TRACEOPT enabled:b ? < 1206803776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where b is a boolean < 1206803787 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or just TRACETOGGLE or something < 1206803791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe, as I indented other ways of tracing < 1206803793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a bit mask < 1206803812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example just trace when new ips were created, but possible that is better as change notification < 1206803908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, should trace initially be on or off? < 1206803947 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no default, needs negotiation? < 1206803964 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so that the client can set its own default < 1206803999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206804007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is easy to set in pre-run state < 1206804013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie just before program starts running < 1206804082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also it is unclear to me how some things should work, ie tracing of space < 1206804095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or in k < 1206804108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one trace each time k runs the instruction? < 1206804142 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206804154 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if it's kp or something it might change the instruction being run, so yes I guess < 1206804236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also I got no idea what extra stuff TRDS would need, if you have any interest in seeing it supported I need info on that < 1206804262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did add a ip mode in the bitmask on trace for it after looking into CCBI's debugger < 1206804281 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for debugging it's a bit tricky < 1206804313 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just for tracing, it's easy since you can just send "space changed to " or "space changed by" and similarly for IPs moving around and being created/dying < 1206804314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also should it be possible to change IP mode, ie, string mode and such from inside the debugger? < 1206804346 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for full functionality, sure, but I wonder if it's really necessary < 1206804346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uhu? < 1206804359 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, tracing anything is easy < 1206804369 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :since the debugger doesn't have to know anything about semantics < 1206804372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes, and this one allows several breakpoints heh < 1206804403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well depends, for example if you want the debugger to draw a "live" version of funge space as the programs execute it would have to < 1206804404 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter can just tell, when time jump happens, "funge-space changed to ...", "IP 0 moved to ...", "IP 1 is now in mode X", etc. < 1206804413 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, it wouldn't < 1206804423 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: since the interpreter only has to communicate the current funge-space < 1206804425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is one thing I wanted recently, when trying one of the programs < 1206804428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :called a roller < 1206804429 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and the debugger can draw that < 1206804437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206804445 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't be the way that interpreter says "executed p" and then debugger executes p locally < 1206804460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1206804461 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it should be that interpreter says "executed p; space[0, 0] is now a" < 1206804467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so you want change notification < 1206804469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see that section < 1206804470 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then debugger can draw a at (0,0) < 1206804476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EVCHGANYCELL < 1206804479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is the one you want < 1206804481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for that < 1206804510 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :aye < 1206804527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway what is needed for stack-stack < 1206804536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't know there, the stack-stack section is just todo atm < 1206804552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :more events needed, though < 1206804560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, agreed < 1206804567 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and hmm < 1206804573 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how does this position stuff work < 1206804577 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in events < 1206804585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean dimensions? < 1206804590 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"this is the position to monitor" < 1206804616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes? not sure I got your question? < 1206804629 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so what is that, exactly < 1206804633 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :funge-space coordinates? < 1206804634 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for one point? < 1206804635 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for a range? < 1206804644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm see section 5.1 < 1206804656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but one cell yes < 1206804672 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1206804675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but range may indeed be a good idea I guess < 1206804676 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so, something to consider < 1206804677 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ranges < 1206804680 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and also, unbounded ranges < 1206804687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um? < 1206804690 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so you can say "anything with y-coordinate > 100" < 1206804697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right I see < 1206804706 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because the funge-space can grow, so you don't have to send STOP, also check y-coordinate 101, CONTINUE < 1206804714 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then again for y-coordinate 102, etc. < 1206804733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that is one issue with STOP, it may not stop exactly where you want < 1206804736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example, network lag < 1206804742 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeap < 1206804743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from the remote developer ;) < 1206804755 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, even internally to the machine < 1206804759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1206804762 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter will probably go at least a few instructions forward < 1206804779 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :also, btw: IP change events < 1206804780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in even the best case at least one instruction forward the way I plan to implement it < 1206804788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm? as in? < 1206804797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"ip split happened"? < 1206804799 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"IP 1 moved to (x,y)" < 1206804803 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"IP 2 created at (x,y)" < 1206804810 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(+ with mode foo) < 1206804811 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :etc. < 1206804814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :moved well, that trace would show < 1206804823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :create and destroy yes < 1206804875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is copying this down into a text file < 1206804890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1206804967 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for stack stack: push stack, pop stack, at least < 1206804988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it can do that < 1206804992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1206804996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :push a stack you mean? < 1206804998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1206804999 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1206805029 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :tracing or events for when stack is changed < 1206805033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, brb, phone sorry < 1206805042 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in general, I'm a bit leery about the tracing+events relationship < 1206805059 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :tracing currently just looks like an event that always fires < 1206805076 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so maybe remove the whole tracing section and do the whole thing in terms of events < 1206805109 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :there doesn't seem to be any way of getting info on the current stack state < 1206805158 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :SSGET for getting a whole stack at once, maybe < 1206805175 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and an SSGETALL for getting the whole stack stack < 1206805309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yeah it should probably be an event < 1206805335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I agree with the other two < 1206805341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is there anything un-needed? < 1206805362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the protocol is starting to look more complex than needed :/ < 1206805434 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well I'm not sure about all the "get info" stuff < 1206805449 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if tracing is always on, it's not needed < 1206805462 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but then, having full tracing is a bit bloaty < 1206805485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes I'm changing it into an even < 1206805487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :event' < 1206805488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* < 1206805515 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what I mean is, the only cases where you would need IPINFO, for instance, are if you don't have IP tracing on < 1206805536 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because if you have tracing on, then the interpreter has already told you where the IPs are, what their deltas are, etc. < 1206805576 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it's true that if you don't have it on, you do need it, and this way you can minimize network traffic: send a breakpoint, then request all info when stopped and get nothing in between. < 1206805601 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so strictly speaking I don't think there's anything major that's unnecessary < 1206805617 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :similarly for FSPACEGET and FSPACEBOUNDS and FSPACEDUMP < 1206805641 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you have the event notification for that on, you don't need it, otherwise you do and that way is more optimal in some cases. < 1206805662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you do need it in one case always < 1206805665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to get initial state < 1206805673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then turn on the notification < 1206805689 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you don't necessarily need the initial state < 1206805694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1206805702 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :for instance, FSPACEDUMP < 1206805709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1206805723 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you know that all you want to do is set a breakpoint at (x,y) and then see what's up, you don't need to download a dump of the whole space at the start < 1206805732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1206805747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but why on earth would you want to trace writes to funge space then? < 1206805759 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :well, this is a case where you wouldn't. < 1206805765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1206805768 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you'd set all events off < 1206805772 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :set the breakpoint < 1206805779 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then get no traffic until the interpreter's at the breakpoint. < 1206805840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1206805848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well that made me think... < 1206805855 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it's up to you whether you consider that use case relevant. < 1206805858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with tcp you need to keep the connection alive < 1206805859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1206805870 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you don't want to make a big spec. < 1206805876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how do you do that then? some "keep alive" instruction needed maybe? < 1206805886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I want something that won't take a year to implement < 1206805890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hmm, isn't that builtin to TCP? < 1206805920 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think connections times out, otherwise why is there an option for ssh keepalive for example < 1206805921 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://tldp.org/HOWTO/TCP-Keepalive-HOWTO/overview.html < 1206805931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you said " and then get no traffic until the interpreter's at the breakpoint." < 1206805933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the issue < 1206805936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no traffic < 1206805958 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but isn't that rather an issue with the SSH daemon killing the connection < 1206805965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1206805966 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not with the OS < 1206805969 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :neither am I < 1206805988 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but I do think it'd make more sense if it were < 1206805992 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so it probably is ;-) < 1206806049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, um, I think connection tracking in firewall will time out after a while with no traffic < 1206806054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure that is the case < 1206806108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because I remember that back when I ran windows, I ran colinux for a while, I didn't need ssh keepalive to make a connection stay alive to colinux, UNTIL I enabled iptables in colinux < 1206806116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then suddenly it was needed < 1206806119 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hm, possible < 1206806132 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alright, so enablable keepalives < 1206806141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of the tcp type? yeah good idea < 1206806198 0 :ehird!n=ehird@91.105.71.247 JOIN :#esoteric < 1206806209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, wait, the application doesn't do tcp keepalive? < 1206806212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but the OS does? < 1206806214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :boop < 1206806218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: umm yeah < 1206806219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok then we need some protocol level one < 1206806228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :obviously the os' tcp layer handles that < 1206806229 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1206806230 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I honestly don't know whether you need app-level keepalives < 1206806236 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't think so, but I don't know < 1206806244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, irc uses it too < 1206806248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PING/PONG < 1206806249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is kinda weird though, most raw-feeling socket stuff has a lot of bunk behind it in tcp < 1206806252 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but IRC is /old/ < 1206806253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's really quite comfy < 1206806254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1206806257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and yeah < 1206806262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IRC is an old dead machine < 1206806267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ping/pong is pretty much useless < 1206806268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :agreed < 1206806275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, however ssh keepalive then < 1206806276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& annoying to have to code into stuff < 1206806277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is useful < 1206806288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ssh has to do all kinds of tricks to fit into the protocol it works on < 1206806293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kind of like stack smashing in c < 1206806297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Deewiant, um, I think connection tracking in firewall will time out after a while with no traffic < 1206806297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : I'm pretty sure that is the case < 1206806297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : because I remember that back when I ran windows, I ran colinux for a while, I didn't need ssh keepalive to make a connection stay alive to colinux, UNTIL I enabled iptables in colinux < 1206806297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : then suddenly it was needed < 1206806302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm ^ < 1206806305 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, SSH doesn't necessarily run over TCP < 1206806312 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe iptables moderates it < 1206806319 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :maybe SSH keepalive just means enabling TCP keepalive, when on TCP < 1206806362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206806384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :once again, I have no clue. < 1206806401 0 :Judofyr!n=Judofyr@ti211310a341-2735.bb.online.no JOIN :#esoteric < 1206806405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think ssh does its own keepalive < 1206806411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that it can be protocol-agnostic < 1206806418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1206806418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :however, protocol-agnostic programs are... uncommon :) < 1206806432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I need this to run over two kind of sockets < 1206806442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :TCP/TCP6 and Unix domain < 1206806506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you should really give git a try < 1206806510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not like < 1206806514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try and use it for everything < 1206806518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but just use some projects using it < 1206806523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its not that bad once you get used to it. nice < 1206806528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I have tried it < 1206806533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: presumably not recently < 1206806538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, until recently, it was painful < 1206806540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's not any more < 1206806540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, about two months ago < 1206806547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it changed since then? < 1206806582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: a litle bit. but you obviously didn't try it very well < 1206806595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"obviously"? < 1206806596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its kinda like lisp. you learn about it, laugh at it, hate it ferociously, then maybe try it and gradually 'get it' :) < 1206806613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(also, darcs is pretty impressive for its theoretical basis. but mostly its used by lisp/haskellers) < 1206806625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, while I find lisp quite annoying I do see it have points, and I even coded some small bits of elisp < 1206806659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and yes darcs indeed, didn't seem to be able to install haskell on my PPC based computer where I tried it < 1206806680 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :"We are a triune being - BODY, SOUL, and SPIRIT. Speaking computerese, we have Body - computer casing; Soul - Hard Drive/Hard Copy; Spirit - Software." < 1206806681 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Lulz < 1206806692 0 :sebbu!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1206806692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'uld help making Funge a more attractive language. In this' < 1206806697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because funge should be an attractive language. < 1206806702 0 :sebbu!n=sebbu@ADijon-152-1-18-90.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1206806714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: find it quite annoying -- yeah your state with git is like yours with lisp :) < 1206806727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm not patronising you, because i felt exactly the same way about git and lisp :p < 1206806732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no I find git bloody stupid < 1206806735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :quite a difference < 1206806740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: still the same basic thing < 1206806746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't "get it" yet < 1206806759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, also it is harder to learn for others < 1206806769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to have to hand hold users once I get it < 1206806773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as you said < 1206806778 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't like Darcs's patch-based model < 1206806792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It does do a good job of sorting out stuff, though < 1206806794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, bzr is close enough to svn that you can easily change really < 1206806801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Though its automatic hunking sometimes gets it wrong < 1206806811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: being close to svn is a flaw < 1206806813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that is one thing I want from darcs < 1206806818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the ability to juggle changesets < 1206806823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :svn is broken by design, and theoretically bullcrap < 1206806826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and be able to track from where they came < 1206806831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well cvs is worse < 1206806842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: cvs is probably better than svn. < 1206806845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, point is svn got a nice user interface < 1206806849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I say that unsarcastically < 1206806854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not talking about internals < 1206806859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but they way a user see it < 1206806861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and if you think svn's user interface is nice I don't know what kind of monster you are < 1206806871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, compared to cvs at least < 1206806884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err the one with two heads and three arms < 1206806887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1206806985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really the ideal solution is plan9's versioned FS < 1206806990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's terribly advanced &nice to use < 1206807009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately plan9, though infinitely better than any system i've come across, is totally useless for practical work :) < 1206807020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, exactly < 1206807033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's a research os < 1206807038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is now more or less dead < 1206807041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not dead < 1206807045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new snapshots are made daily < 1206807058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so is the community growing? < 1206807070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when will it have support for accelerated 3D? < 1206807071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: in little trickles < 1206807075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it is a research os. < 1206807082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why would it have support for that? < 1206807086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when will it work on something as simple as a SATA disk? < 1206807092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1206807093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :last I checked it didn't handle that < 1206807097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1206807103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1206807124 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :daily? http://plan9.bell-labs.com/sources/plan9/sys/src/ looks a bit older < 1206807129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, point is, it is not useful for practical work < 1206807147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well for bell it *is* dead < 1206807235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: that's not a snapshot < 1206807239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i already said that < 1206807245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[15:10] ehird, exactly < 1206807246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[15:10] it's a research os < 1206807246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[15:10] that is now more or less dead < 1206807248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything but the last line, i agree with < 1206807270 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: where're the snapshots < 1206807276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes I was agreeing with you < 1206807283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: don't rememberr offhand < 1206807297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ok, but it is NOT more or less dead < 1206807306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's alive, and interesting fromm a research POV < 1206807314 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hopefully the OSs of the future will resemble it in some way < 1206807326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i really like it's refreshing approach to the mouse, actually < 1206807332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the tests etc. they did and all < 1206807339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and they developed an interface combining the keyboard and the mouse efficiently < 1206807341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's really nice < 1206807359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i've always been a mouse fan, though. it's just that a lot of apps are designed suckily for one < 1206807369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I love acme.) < 1206807501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1206807512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I prefer working with my hand on the keyboard < 1206807516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :avoiding mouse < 1206807535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ergonomics < 1206807585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the mouse is very effiient with the right interface < 1206807595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and enough practice, a lot of mouse-haters just don't even try the mouse properly < 1206807599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so they're simply not proficient with it < 1206807610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I can use it well enough < 1206807626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I use it a lot, but it make my hand hurt in the long run < 1206807657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a track ball seems much better < 1206807663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :trackballs are interesting < 1206807672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i am not sure they are superior to a well-calibrated mosue though < 1206807674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, of course there are tasks where you can't avoid mouse, for example image editing < 1206807680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, my whole computer interaction system is warped < 1206807691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my hands are very efficient at jumping keyboard/mouse < 1206807696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so the context switch is almost none < 1206807697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where mouse or pen on touch surface are the only sane options < 1206807704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, my typing is really weird < 1206807711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh? < 1206807717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my hands are predictive, they know which area they will be tapping the most before they actually tap < 1206807735 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so they kind of float about to a weird place and then a second later i realise that they were being really clever and going to the right place < 1206807760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh? < 1206807776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes of course I know where I will type < 1206807814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206807815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1206807820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my hands generally don't rset on the home row < 1206807834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they type a bit then drift somewhere else (not conciously, they do it automatically) < 1206807844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then it ends up that where they drifted was where they'll be typing the most until the next drift < 1206807850 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's strangely automatic < 1206807851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I move while the previous char is typed with the other hand. anyway I'm right-handed but I seem to type faster and use more of my fingers with left hand < 1206807858 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just kind of wobble my hands and tap down < 1206807860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it all moves for me < 1206807866 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I never use the home row anyway < 1206807875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, nor do I < 1206807876 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :my fingers are where they need to be, not on some default location :-P < 1206807883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1206807891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that comes from not using vi IMO < 1206807891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my idiosyncratic style has developed over quite a few years < 1206807900 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :maybe, but I use vim :-P < 1206807907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah but I use emacs < 1206807937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i use vi or emacs < 1206807943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i quite like textmate on os x < 1206807958 0 :marshmallows!n=vicky@amcant.demon.co.uk JOIN :#esoteric < 1206807961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1206807962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :esp. for xml < 1206807966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its really nice < 1206807973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I tend to xml in kate < 1206807978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C in emacs or kdevelop < 1206807994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the problem is when finding out you used both for same file < 1206807996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1206807997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hmm, just tried xml'ing in kate < 1206807998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at the same time < 1206808000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not that hot < 1206808005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but still hotter than anything emacs has, oddly < 1206808011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I don't really do a lot of xml really < 1206808015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :emacs' xml support sucks more than anything else emacs can do < 1206808016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so kate is enough for me < 1206808017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just terrible < 1206808033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't care if nxml has a validating xml parser written in emacs, it's crap < 1206808034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, agreed, it fails at indention in xml for example < 1206808070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but the solution is very simple < 1206808075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just use S-Expressions < 1206808083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :emacs got a very good support for that < 1206808161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: s-expressions can get really ugly for some types of data you know < 1206808177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed, but much less overhead than xml in most cases < 1206808187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1206808191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :emacs has no S-Expr mode < 1206808192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just lisp mode s:) < 1206808198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Paredit on its own: nope. won't indent. < 1206808249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1206808259 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just open a html file or xml file in emacs < 1206808264 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it won't indent where you want < 1206808304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while kate won't find the right indention level automatically either, it won't prevent you from doing it yourself < 1206808318 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :emacs does? O_o < 1206808329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes for C it does < 1206808345 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, "prevent you from doing it yourself" < 1206808355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in xml mode it does yes oddly < 1206808459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: kate autoindents < 1206808462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you must have it broken < 1206808481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what version? < 1206808516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1206808572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, = < 1206808573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1206808587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ubuntu < 1206808589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :...... < 1206808592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what kate version < 1206808593 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1206808600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ubuntu's kate. < 1206808603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and kde version < 1206808603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :go in your config < 1206808607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change the indent settings < 1206808608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and that is 4.what? < 1206808611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or 3.what? < 1206808612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :4? < 1206808612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1206808613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 < 1206808624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kate has ALWAYS indented xml < 1206808626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its a config options < 1206808627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sheesh < 1206808636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :help -> about kate < 1206808638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change indent mode to 'c style' < 1206808639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :jesus < 1206808640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what version? < 1206808643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change indent mode to 'c style' < 1206808643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change indent mode to 'c style' < 1206808643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change indent mode to 'c style' < 1206808643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :change indent mode to 'c style' < 1206808650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there is no such thing here < 1206808652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1206808656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: settings < 1206808658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :configuration < 1206808659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :indentation < 1206808661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> c style < 1206808674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean: Inställningar -> Anpassa kate? < 1206808686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whatever, you dirty swede :) < 1206808688 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :If you use C style, Al Qaeda wins. < 1206808693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :slereah__, err? < 1206808703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway emacs rocks for C < 1206808706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :real programmers use computers in english! ;) < 1206808709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes but C style indents xml < 1206808717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, perfect CScope integration for example < 1206808723 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I find most swedish translations of software disgusting < 1206808743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, the KDE one is unusally good < 1206808743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not common < 1206808749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but KDE one is actually really high quality < 1206808763 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oh, good for KDE < 1206808775 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ACTION uses no KDE software < 1206808780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, gnome? < 1206808791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they have very shitty Swedish translation iirc < 1206808800 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I haven't used it for long < 1206808807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so can't really say anything about current state < 1206808807 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :nah, I use X11, with some software from the gnome project ;-) < 1206808824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, what window manager? < 1206808852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh god i'm pretentious < 1206808859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just responded to a post on reddit saying 'JWZ' with 'it's jwz' < 1206808873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :jwz? < 1206809071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :jamie zawinski < 1206809073 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: xfce, so I guess I'm half-gnome < 1206809084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, doesn't mean anything to me < 1206809088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Jamie W. Zawinski (born November 3, 1968[1] in Pittsburgh, Pennsylvania), commonly known as jwz, is an American computer programmer responsible for significant contributions to the free software projects Mozilla and XEmacs, and early versions of the proprietary Netscape Navigator web browser. He still actively maintains the XScreenSaver project, used by most Unix-like computer operating systems for screenblanking. < 1206809114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(also: 'Zawinski is currently the proprietor of the DNA Lounge, a nightclub in San Francisco.') < 1206809144 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you've ever heard: 'Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems.' then that's a jwz quote. it's also horribly incorrect < 1206809175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1206809180 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that's often paraphrased as "I know, I'll use XML." ;-) < 1206809186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I know someone who like to quote that yes < 1206809190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one of the #bash regulars < 1206809194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :called greycat < 1206809213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and well some ppl try to use regex where regex does not really fit < 1206809249 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, has someone produced a turing complete regexp dialect yet? < 1206809256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, was just about to ask < 1206809265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if not, someone should < 1206809317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: perl5 regexps < 1206809322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also ais523 is working on one < 1206809326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is actually convenient for parsing < 1206809332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: aah, greycat. that moron :) < 1206809343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh? he is smart < 1206809346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just very unusal < 1206809351 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :doesn't perl5 regexpes rely on embedding perl code for TC:ness? < 1206809379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I respect his knowledge, but I don't agree with his opinions < 1206809381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: smart but elitist and unhelpful < 1206809386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& plain wrong on most things < 1206809393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, opinons indeed < 1206809395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so a lot of smart going to waste < 1206809403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: nope < 1206809409 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can have recursive regexps and some other stuff < 1206809410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is tc < 1206809423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of jwz, this has to be the craziest lisp code i've ever seen: http://jwz.livejournal.com/854482.html < 1206809431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and he knows more than anyone else on #bash about HP-UX ;) < 1206809440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever it was he ran < 1206809576 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :heh, just the lisp equivalent of a bit of unsafePerformIO and unsafeCoerce :P < 1206809608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: knowledge about HP-UX, how useful and practical < 1206809624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hehe exactly ;P < 1206809627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olsner: except that those functions will be actively used in the code for: 1. efficient programs 2. OS-level code < 1206809629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was ironic < 1206809632 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since they were just low-level primitives < 1206809647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# is a hilarious printout though < 1206809674 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.unlambda.com/nevermore/ ooo < 1206809746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.unlambda.com/lisp/meroko.page a different one, same site. odd < 1206811033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, where is the string GOOD: : on empty stack makes stack size 2 according to y stored < 1206811036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't find it < 1206811103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait just found it < 1206811105 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but wtf < 1206811764 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is SISC's startup unbearably slow for anyone else? < 1206811791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, SISC? < 1206811937 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Second Interpreter Scheme Something < 1206811942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seecond interpreter of scheme code < 1206811944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a java scheme interp < 1206811946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :main interest: < 1206811953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has full continuations while still interacting with java, and < 1206811956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything is serializable in it < 1206811964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can serialize functions, continuations, everything except obviously things like sockets < 1206812226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so far it seems to be crap on after the newline in "GOOD: ] turns flying IP right" < 1206812252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :stack have 1 2 3 4 at that point < 1206812254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1206812569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the code in that area is very confusing < 1206812631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206812635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder how hard implementing a basic smalltalk is < 1206812714 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1206812745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"GOOD: \ on empty stack makes"$"x stack size 2 accord"< < 1206812753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what is the $ there for? < 1206812759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it tests something else at once? < 1206812782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1206812792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is code running through the string < 1206812796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh my < 1206813025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206813028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyone a smalltalker? < 1206813039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do messages have built-in arity, i.e. can I respond_to with an argc? < 1206813041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think no < 1206813110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well depends on how you define smalltalker < 1206813127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION runs < 1206813181 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : for (i = argc; i--;) { /* cute c hack *. < 1206813577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if you want to parse your command line arguments backwards it does indeed seem like the right way < 1206813585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why on earth you would want that I don't know < 1206813592 0 :slereah_!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206813810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yeah, oops :) < 1206813812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1206813822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/x7YYOH94.html skeleton of message sending for my imaginary smalltalk < 1206813848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think objc does message based object orientation too? < 1206813849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1206813857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yep < 1206813860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :objc is smalltalk+c < 1206813865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[...] = smalltalk-land! < 1206813870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and some bits with @ and - (abc) < 1206813871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah < 1206813890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbiab food < 1206813893 0 :Tritonio_!n=Tritonio@150.140.229.252 JOIN :#esoteric < 1206814031 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://jwz.livejournal.com/843296.html hahahahahah < 1206814474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that dialog in mosaic was optional and not the default < 1206814496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i know that < 1206814507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has been working on mosaic code recently < 1206814512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was added because of corporate bureaucracy < 1206814518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1206814541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1206814548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a corporate customer wanted some kind of warning or similar < 1206814550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so they added that < 1206814556 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(config key: protectmefrommyself, iirc) < 1206814556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1206814561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i read up on mosaic aaages ago :) < 1206814572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes I think it is, prefsdefs.h iirc < 1206814574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1206814585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not totally sure about what header file < 1206814754 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206814810 0 :slereah_!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206815257 0 :Sle!n=slerjeah@ANantes-252-1-53-171.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1206815273 0 :Sle!unknown@unknown.invalid NICK :Slereah < 1206815339 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1206815449 0 :slereah__!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1206816540 0 :okopol!n=oklofok@spark.turku.fi JOIN :#esoteric < 1206817526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so far I found whatever causes it happens somewhere before ] turning flying IP test < 1206817540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and *probably* after "GOOD: y acts as pick instruction if given large enough argument" < 1206817585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually happens before it < 1206817586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1206817621 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what's your stack at (140,163) < 1206817635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um can't break like that yet *looks* < 1206817647 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and hence debuggers are handier than tracing ;-) < 1206817668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :agreed that is why I'm working on the protocol < 1206817770 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) break ExecuteInstruction if (ip->position.x == 140) && (ip->position.y == 163) < 1206817773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, :P < 1206817786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=140 y=163: f (102) < 1206817787 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1206817798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) call StackDump(ip->stack) < 1206817798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :5 elements: < 1206817798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1 2 3 4 0 < 1206817807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes indeed it is wrong even at that point < 1206817817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :those 1 2 3 4 is what is messing up below < 1206817831 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206817849 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :your y isn't working as a pick instruction correctly < 1206817858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm, it says it is < 1206817860 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1206817865 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the test isn't sufficient < 1206817866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"GOOD: y acts as pick instruction if given large enough argument" < 1206817871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or rather, it is, in a way < 1206817874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1206817876 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you can't ever be sure the stack is really empty < 1206817878 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but one sec < 1206817884 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I can make it a bit better easily < 1206817887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you can after n really, right? < 1206817908 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yes, but you can't be sure whether n deleted anything or not < 1206817911 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :that's what I meant < 1206817917 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :i.e. in this case, after the y, the stack should have only a 2 < 1206817924 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and that's all that's being tested for < 1206817927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206817929 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'll make it check for 2 and then 0 < 1206817938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what would cause the 3 and 4? < 1206817940 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ideally it'd check for 2 and then empty, but that's basically impossible < 1206817944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie, where do they come from < 1206817962 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :1234 is put on the stack < 1206817969 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :from which 2 is meant to be piciked < 1206817974 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/picik/pick/ < 1206817983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok, y as pick should not pop any item right? < 1206817993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but just push the given item? < 1206817998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or did I get that wrong? < 1206817999 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :according to the spec surely it should :-P < 1206818005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1206818049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so it should pop until that point? < 1206818075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then how does it differ from say 4k$ ? < 1206818086 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it also clears the stack below < 1206818101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so the stack is empty except that item, huh < 1206818102 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so it's more like 4k$00pn00g < 1206818106 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1206818111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but y doesn't always clear the stack does it? < 1206818122 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you want to pull from tar.us.to:8000 go ahead < 1206818144 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :with luck the test works < 1206818168 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and with luck the DNS resolves correctly this time :-P < 1206818175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : FUNGEDATATYPE tmp = ip->stack->entries[ip->stack->top - (request - tmp->top)]; < 1206818175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : StackClear(ip->stack); < 1206818175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : StackPush(tmp, ip->stack); < 1206818186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that correct then for the case of y going pick? < 1206818197 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1206818208 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just pull the myco and test it < 1206818267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok that works now < 1206818278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, however, should y clear stack in other cases too? < 1206818285 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :no, no < 1206818288 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :read the spec < 1206818314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :If y is given a positive argument, all these cells are pushed onto the stack as if the argument was non-positive. However, y then goes on to copy the argumentth stack cell (counting from the top) into a temporary location, subsequently removing all the cells it pushed onto the stack. It then pushes the temporary cell onto the stack. For example, 3y will act as if only the handprint was pushed onto the < 1206818314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : stack. < 1206818320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes, that *it* pushed < 1206818327 0 :poiuy_qwert!n=poiuyqwe@bas2-toronto47-1242398246.dsl.bell.ca JOIN :#esoteric < 1206818332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't seem to be like it pushed the first 1 did it? < 1206818339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ? < 1206818342 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :An interesting side-effect of this behaviour is that if y is given an argument that exceeds the number of cells it pushes onto the stack, it can act as a 'pick' instruction on data that was on the stack before y was even executed. < 1206818351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes indeed < 1206818352 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206818359 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :you may be right < 1206818362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :let's see < 1206818362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but where does it say it should clear the stack? < 1206818375 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at most it is an undef < 1206818431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and probably it is a BAD to clear the stack < 1206818450 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :augh, I can't test this because 0y doesn't work in other interpreters :-P < 1206818467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, err 0y must work on some to push stuff? < 1206818477 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :? < 1206818491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what do you mean 0y doesn't work? < 1206818497 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, 0y doesn't work. < 1206818506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206818509 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it gives the wrong stack size. < 1206818512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206818519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, try gdb < 1206818525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a breakpoint and then examine stack < 1206818545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw I think my gdb breakpoint was quite nifty < 1206818546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1206818578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and is actually more useful to me to debug the interpreter itself but to debug a script it is less useful < 1206818583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err program < 1206818662 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hmm, this may actually be a CCBI bug < 1206818671 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pop(size - oldStackSize); < 1206818674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, XD < 1206818686 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what's up with that < 1206818713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well hurry up or rename it to NCCBI ;) < 1206818727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in any case looks like I'm right and mycology wrong or? < 1206818727 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :bugs happen < 1206818740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I want to know what way I should do it < 1206818854 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :at this point I'm not sure where the bug is < 1206818856 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :gimme a few secs < 1206818869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just want to know if I need to change cfunge or you change mycology < 1206818880 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :wondering what on earth "aa 2++k$" is doing in myco < 1206818890 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think it's getting the stack size < 1206818894 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but it might be messing it up too < 1206818902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to have to use a #define MYCOLOGY_COMPATIBLE vs #define STANDARD_COMPATIBLE ;) < 1206819165 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206819174 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :it does seem to be a CCBI bug < 1206819184 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and of course Mycology as well < 1206819189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206819202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hope you can fix it soon in mycology so I can look at the next bug < 1206819203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :but I'm wondering what the right way of resolving this is < 1206819217 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if (size > oldSize) pop(size - oldSize); ?? < 1206819224 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :does that make any sense? < 1206819230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err I have not read your sysinfo code at all < 1206819244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mine is completely freestanding < 1206819247 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :what it does is, like the spec says, it pushes everything < 1206819258 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :then it pops up to the argumenth cell < 1206819265 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pops the cell to be picked < 1206819271 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and then does pop(size - oldSize); < 1206819274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I push things to a temp stack < 1206819276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then do this < 1206819278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : if (tmp->top > (size_t)request) < 1206819278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : StackPush(tmp->entries[tmp->top - request], ip->stack); < 1206819278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : else < 1206819278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : StackPush(ip->stack->entries[ip->stack->top - (request - tmp->top)], ip->stack); < 1206819282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tmp is the temp stack < 1206819294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :request is the thing y popped of the main stack < 1206819298 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :stack->top is the stack size? < 1206819305 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or a pointer to the top? < 1206819307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is the top stack item yes < 1206819317 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, so the size < 1206819320 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1206819328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, top->size however is the actual stack size, as it doesn't realloc to smaller stack < 1206819329 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so if size > arg... < 1206819337 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeye, same difference < 1206819346 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I expose the "actual size" myself :-) < 1206819347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh getting dcc chat spam < 1206819364 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if size > arg, if oldSize <= size < 1206819412 0 :otesanek!n=otesanek@217.195.209.193 JOIN :#esoteric < 1206819460 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :both appear to work < 1206819607 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you might still have it wrong, though :-P < 1206819621 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: pull < 1206819625 0 :poiuy_qwert!unknown@unknown.invalid QUIT : < 1206819632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :k < 1206819672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :BAD: y doesn't act as pick instruction if given large enough argument < 1206819673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1206819678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how would it be wrong now? < 1206819694 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pop up to the requested one, but leave everything below that untouched < 1206819698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1206819700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1206819949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok pushed fixed cfunge :) < 1206819968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: 000p000W goes thrugh < 1206819968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: 000p100W waits indefinitelyGOOGOOD: X works < 1206819971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still have to solve that < 1206819979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, any idea about wtf may be going on there? < 1206820006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I copied the logic of TOYS' W from CCBI < 1206820011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or or less < 1206820015 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :not really, no < 1206820028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok, can you tell me where in the file that is? < 1206820032 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :does that really print "thrugh" btw < 1206820038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not for CCBI < 1206820039 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :just grep for 000p000W < 1206820044 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: good :-) < 1206820053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, problem is I don't know what direction to grep for it in < 1206820060 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :grep it left to right < 1206820065 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if you can't find it, grep it right to left < 1206820072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean it is probably either left to right or right to left < 1206820073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but < 1206820075 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :and if you still can't find it, use another part of the error message < 1206820076 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1206820079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it could be upwards or downwards < 1206820087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :someone need to invent a fungegrep < 1206820087 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in 99% of cases it isn't < 1206820090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like there is xmlgrep < 1206820102 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :or if it is, then look for the next or previous message < 1206820113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : v"U executes itself after transmuting"_v#! 'v>;#"BAD: 000p000W reflects"ap$$$<;^ < 1206820115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1206820551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the problem is that it is concurrent < 1206820560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so bloody hard to make sense of < 1206820561 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1206820601 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yep :-/ < 1206820659 0 :bsmntbombdood!n=gavin_@75-166-172-110.hlrn.qwest.net JOIN :#esoteric < 1206820771 0 :marshmallows!unknown@unknown.invalid QUIT :"Leaving" < 1206820860 0 :otesanek!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1206821176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so the W is kind of like Compare and exchange? < 1206821179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1206821209 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :W ('television antenna') pops a vector off the stack, then a value. If the cell at that vector (plus the storage offset) in Funge-Space (a la g) is equal to that value, nothing happens. If the cell in space is less than the value, it pushes the value and the vector (inverted) back onto the stack, and backs up the IP (subtracts the IP's delta from it's position, sort of a 'wait to try again' condition, useful mainly in Concurrent Funge.) If the cell in s < 1206821253 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so it keeps retrying until the cell at the vector is >= the requested value < 1206821260 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :if it's >, it reverses, if it's =, it does nothing < 1206821265 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(besides popping the vals, of course) < 1206821278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1206821281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha* < 1206821295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is it reverses and tries to execute again on next tick? < 1206821306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ie a kind of semaphore? < 1206821313 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :yeah, kinda < 1206821323 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :like it says, "sort of a 'wait to try again' condition" < 1206821431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but why doesn't it print BAD < 1206821445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why does it print some weird GOODGOOD and missing char stuff? < 1206821453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and is the error really in W? < 1206821456 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :because it's concurrent and complicated :-P < 1206821458 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I can't be sure < 1206821459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or does W use something not tested before? < 1206821464 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I hope not < 1206821481 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :once again, compare stacks (and, since concurrent, IP positions) with CCBI < 1206821532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=172 y=430: g (103) < 1206821532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=1 tid=2 x=164 y=432: n (110) < 1206821532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=173 y=430: u (117) < 1206821532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=1 tid=2 x=165 y=432: @ (64) < 1206821532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=175 y=430: r (114) < 1206821533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=176 y=430: h (104) < 1206821535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=1 x=177 y=430: t (116) < 1206821537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um < 1206821539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1206821547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that supposed to happen < 1206821557 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is where the through string is messed up I think < 1206821559 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :possibly, I can't remember < 1206821681 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1206821690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hguorht < 1206821699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, to me it seems something overwritten wrong place < 1206821710 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :so what are your storage offsets like < 1206821714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the code does not contain any @ in that place < 1206821736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206821756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :c = space[x, y]; < 1206821762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that is from your code < 1206821772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no storage offset is used when accessing ? < 1206821777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but only when writing it back? < 1206821786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : pushVector(x - ip.offsetX, y - ip.offsetY); < 1206821789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from your code too < 1206821792 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :165 432 is meant to be @ < 1206821824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err *looks* < 1206821829 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but isn't that a concurrency bug, right there < 1206821840 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why does your other IP skip over the 'o' when the other hits '@' < 1206821859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1206821861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1206821866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was reading on the wrong line < 1206821900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, um < 1206821902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*looks* < 1206821939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/pYLvrJ74.html < 1206821947 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :the @ is put there by the p at (168,430) < 1206821956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if I just had such a output from ccbi too so I could compare < 1206821963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but maybe time for a funge space dump < 1206821971 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'd start with figuring out why the 'o' isn't output < 1206822013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : v"U executes itself after transmuting"_v#! 'v>;#"BAD: 000p000W reflects"ap$$$<;^ < 1206822014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >"" >" :FEDNU">:#,_a,$111p > > > ^ > ;BAD;^ >na"v^<> fo lla otni detumsnart U :DOOG">:#,_1y2%!#v_p'@faf*+689**000#vt#^Wpa"hguorht"v < 1206822014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : v>"nseod U"^ > ^ v<< < > < 1206822014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " stiaw W000p000 :DABvv"deb*+25ef*+*p83a*+689**p@ v "Cannot test W without Concurrent Funge-98 support."a< >>>n@"yletinifedni" < 1206822016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " v$$$< >$$$pna"stcelfer W001p000 :DAB" v >$$$pa"stcelfer W00-10p000 :DOOG" v < 1206822019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is how it looks < 1206822021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the dump < 1206822053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :'^48a*+3bd**p^ ^ < >v>;#"BAD: 000p000W reflects"ap$$$<;^ < 1206822053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :> fo lla otni detumsnart U :DOOG">:#,_1y2%!#v_p'@faf*+689**000#vt#^Wpa"hguorht"v < 1206822053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ^ v<< < > < 1206822053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :est W without Concurrent Funge-98 support."a< >>>n@"yletinifedni" < 1206822053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : v >$$$pa"stcelfer W00-10p000 :DOOG" v < 1206822056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :>;#$$$$$< ;>:#,_'@6bc*+f92a*+*01-00#vt#^Wpa"hguorht seog W00-10p000 :DAB" v < 1206822058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^v"d5*27ef*+*pc9*f92a*+*p@ > #< # #vt zzzzzzzzzzzzz v < 1206824016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >#vtzzz@ < 1206824016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >a"DOOG :4">:#,_@ < 1206824016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v < < 1206824018 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :how'd you get that < 1206824018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on that code < 1206824028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no brainfucking clue how < 1206824029 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :on the second t? < 1206824040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, on; < 1206824042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=1 tid=6 x=11 y=18: @ (64) < 1206824042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=2 tid=0 x=5 y=3: t (116) < 1206824058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait a sec < 1206824060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense < 1206824064 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :y=3? < 1206824095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes indeed makes no sense < 1206824100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets out valgrind < 1206824101 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1206824122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :==16089== Conditional jump or move depends on uninitialised value(s) < 1206824123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as I expected < 1206824135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1206824188 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :of course, valgrind is something you should run on your code before complaining about mycology tests ;-) < 1206824188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if you want to experiment: < 1206824189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/tSF4nt31.html < 1206824204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well valgrind gives no issues when running mycology < 1206824220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a few memory leaks in funge space as you can't use gc + valgrind at same time < 1206824222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that's all < 1206824223 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :uh? shouldn't that conditional be entered always? < 1206824235 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :in t or @ or wherever that is < 1206824251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in hash function < 1206824253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sill scheme interpreter name: Isch Creme < 1206824255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure < 1206824261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or ischcreme < 1206824281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ==16254== ERROR SUMMARY: 0 errors from 0 contexts < 1206824287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when running on mycology < 1206824290 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that needs more 'z', prints 3: G4O:O DG here :-) < 1206824298 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: odd < 1206824309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: that needs more 'z', prints 3: G4O:O DG here :-) < 1206824310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1206824320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it should print 3: GOOD < 1206824322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1206824353 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :3 and 4 are interspersed here < 1206824360 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, aha < 1206824376 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :please don't tell me that CCBI on linux behaves differently :-D < 1206824450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ ~/funge/ccbi/ccbi_linux/ccbi tests/concurrent-quit.b98 < 1206824451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1: GOOD < 1206824451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :2: GOOD < 1206824451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :3: GOOD < 1206824451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :4: GOOD < 1206824453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1206824458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that is what happens here < 1206824465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :may not be last version < 1206824475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait this is a slightly different version < 1206824480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :than the one I pastebinned < 1206824481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1206824486 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1206824500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok, the first two splits are ok < 1206824504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1 and 2 in cfunge < 1206824507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then issues start < 1206824518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=5 y=17: t (116) < 1206824540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :splitting after the third one in fact < 1206824909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm, now by adding a mutex it is "fixed", but now I need to reproduce the issue again < 1206825108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >@ < 1206825109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >#^tzz@ < 1206825109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :> #^tz#vt v < 1206825109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >zzzz@ < 1206825109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v < < 1206825111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that does it < 1206825117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :looking at minimizing it < 1206825154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the upper split can be removed < 1206825320 0 :Corun!n=Corun@cpc1-rdng15-0-0-cust168.winn.cable.ntl.com JOIN :#esoteric < 1206825488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually wrong < 1206825493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it still interacts with previous code < 1206825566 0 :okopol!unknown@unknown.invalid NICK :oklopol < 1206825784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok this need a very specific split pattern to trigger < 1206825790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1) ip 0 split < 1206825807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :2) ip 1 just goes on doing z or whatever < 1206825817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :3) ip 0 split again < 1206825843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :result is that suddenly we got two ip entries but array length of 3 < 1206826704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ^ < 1206826714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think I am beginning to solve it < 1206827945 0 :calamari!n=calamari@ip24-255-58-177.tc.ph.cox.net JOIN :#esoteric < 1206828372 0 :nice_ka!n=nice@HSI-KBW-091-089-028-216.hsi2.kabelbw.de JOIN :#esoteric < 1206829185 0 :RedDak!n=dak@87.18.81.172 JOIN :#esoteric < 1206830669 0 :pikhq!n=pikhq@209.248.124.243 JOIN :#esoteric < 1206830853 0 :Deformative!unknown@unknown.invalid QUIT :"Konversation terminated!" < 1206830932 0 :Deformative!n=joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric < 1206831002 0 :Deformative!unknown@unknown.invalid QUIT :Remote closed the connection < 1206831060 0 :Deformative!n=joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric < 1206831515 0 :Tritonio_!n=Tritonio@150.140.229.252 JOIN :#esoteric < 1206832403 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION made a O(1)-space quicksort < 1206832406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think... < 1206832418 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so hard to know what counts as O(1) < 1206832467 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i need to fiddle with the bitstring of len(l) where l is the sorted list, so basically it's O(lg n) space anyway... i'm fairly sure you can't actually manage O(1), although i've been told it exists < 1206832504 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err no, i need numbers 0...len(n), so it's O(lg lg n) space, i guess, but still < 1206832614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: O(1) - given any list, uses the asme space < 1206832618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a 43593459345435 elm list == same space as 4 < 1206832652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: maybe you could use xrange insead of range < 1206832655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that calculates it lazily < 1206832769 0 :Deformati!n=Joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric < 1206832862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...what? < 1206832868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :asme? < 1206832903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: thats O(1) space < 1206832914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if sort() is O(1) < 1206832928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i use a few iterators where a retard might have used a strictly evaluated list, yes, but xrange doesn't really solve the whole thing < 1206832929 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sort([45,345,2,34,3]) takes same memory as sort([345345,345,35,24,12,3,7,34,5,7,4,6,7,345,,,67,345,7,,5,345,45]) < 1206832936 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1206832938 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it does? :O < 1206832952 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if its O(1) < 1206832957 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do people usually do to get rid of the recursion stack? < 1206832959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1206832964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err not < 1206832966 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*no < 1206832970 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i specified *quicksort* < 1206832973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... < 1206832975 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :enlighten me < 1206832980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my solution isn't all that trivial < 1206833044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: get rid of recursion=manual stack < 1206833062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, it's kinda trivial, just a certain pattern around the bits of len(l) + calculating in O(n) the median, pivotting perfectly < 1206833073 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: how's that O(1) space more than the recursion stack? < 1206833135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, care to show the code? < 1206833139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and in what language? < 1206833140 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :k < 1206833142 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :python < 1206833147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forget it then < 1206833177 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p531644464.txt < 1206833197 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's prolly like O(lg lg n), but it doesn't use any stack, just a few numbers < 1206833204 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1206833279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: wow < 1206833318 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: now that i understood "asme" in fact means "same", i can answer: indeed, it's definitely not O(1) space then, i need bignums for the length of the list, and the length can be like a quasimagrillion. < 1206833336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: wow as in, CAN PYTHON ACTUALLY BE RAPED THAT BADLY?!?!? < 1206833339 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or what :P < 1206833359 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :skipiter was the hard part < 1206833423 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :uses O(lg n) space, for a few numbers that is, to get the sequence 0 -> 101 -> 2120212 -> 323132303231323, which i use to get jumps right when traversing the sublists when i've "recursed" onto another level < 1206833428 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god i'm bad at explaining this < 1206833454 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wish i owned at math, could just prove it, and tell ppl to fuck themselves if they asked for an explanation. < 1206833459 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1206833675 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I would have attempted an analysis if it wasn't written in python < 1206833681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1206833685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what language do you want? < 1206833691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can rewrite < 1206833698 0 :Deformative!unknown@unknown.invalid QUIT :Remote closed the connection < 1206833727 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :nah, don't bother < 1206833744 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(just needs to support mutable lists of course) < 1206833779 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(or it'll trivially be at least O(n) space) < 1206833808 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :olsner: so basically you don't want to, and this was just an excuse? :P < 1206833819 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :something like that, yeah < 1206833819 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my time is worthless! < 1206833824 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD < 1206833840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, C < 1206833843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rewrite it in C < 1206833856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem with C is, i actually need bignums. < 1206833859 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1206833859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-std=c99 -pedantic -Wall -Wextra -Werror < 1206833863 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1206833877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually I use more, too many to paste here < 1206833887 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because if a list fits into memory, the pointer size is enough for me < 1206833904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/326SMd71.html < 1206833913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is from my cmake file for a project < 1206833931 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i could do a fairly straightforward translation from python to C here, if it weren't for that one generator < 1206833958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but it's fairly simple, i now realize, to non-generatorize it < 1206834009 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :perhaps i'll do it tonight, after my daily south park session < 1206834021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, size_t for memory < 1206834025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I got 64-bit :) < 1206834054 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think the biggest problem will be to get a C compiler to work < 1206834081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: lunix? < 1206834088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :debian/ewwbuntoo: < 1206834088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as many here already know, i'm the biggest retard in the world when it comes to installing software. < 1206834092 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sadly, no < 1206834093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sudo apt-get install build-essential < 1206834096 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :wow, that's a crazy set of warning options! witness of the unsafe properties of C :P < 1206834098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh darn < 1206834099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what then < 1206834104 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :guess ;) < 1206834111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cygwin < 1206834113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cygwin is yer friend < 1206834115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it comes with gcc < 1206834132 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :or mingw < 1206834133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, hah < 1206834169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cygwinnnn < 1206834170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, don't forget the *need* for valgrind < 1206834173 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: perhaps < 1206834178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cygfail? < 1206834193 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, if you're on windows you can just compile, test and pray < 1206834215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, I'm not on windows < 1206834226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm on Gentoo Linux x86_64 < 1206834227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1206834332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, so what do you use to detect memleaks in windows software? < 1206834339 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I'm also on linux at home; but not at work since certain of our target platforms have developer tools that are windows-only < 1206834376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :olsner, sure GCC can't compile to those platforms? < 1206834431 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Here's a hint: GCC targets *everything*. < 1206834436 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :it can, but produces bigger binaries and requires hacking linker scripts etc no-one's had time to perform < 1206834441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, exactly < 1206834453 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hell, I can get GCC to target a fucking PDP-11. < 1206834455 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, apart from h8300, iirc that port is dead since about gcc 2.95 < 1206834459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1206834474 0 :nice_ka!unknown@unknown.invalid PART #esoteric :? < 1206834476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wanted to cross compile to it recently < 1206834479 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Doesn't mean I can't get GCC to target one. < 1206834491 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Granted, porting from 2.95 would be a royal pain. < 1206834500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, 8 bit CPU < 1206834504 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(did they even use RTL then?) < 1206834505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: if you write a backend, it will compile! < 1206834507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wowz < 1206834533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, used in some products by Lego < 1206834539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah in toys < 1206834886 0 :Deformati!unknown@unknown.invalid QUIT :Remote closed the connection < 1206835095 0 :Deformative!n=joe@c-68-61-240-49.hsd1.mi.comcast.net JOIN :#esoteric