ChanServ changed the topic of #picolisp to: PicoLisp language | Channel Log: https://irclog.whitequark.org/picolisp/ | Check also http://www.picolisp.com for more information
patrixl has joined #picolisp
xkapastel has joined #picolisp
joncfoo has quit [Remote host closed the connection]
joncfoo has joined #picolisp
xkapastel has quit [Quit: Connection closed for inactivity]
_whitelogger has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
rob_w has joined #picolisp
orivej has joined #picolisp
orivej has quit [Quit: orivej]
jibanes has quit [Ping timeout: 246 seconds]
jibanes has joined #picolisp
orivej has joined #picolisp
<rob_w> (for File(filter '((F) (pre? "adc_0_" F)) (dir "/media/ram/dat/attic/"))(<href> File (pack "/media/ram/dat/attic/" File)) (<br>))
<rob_w> i want that href there in mono font ... but i dont get it to work
<beneroth> <pre> html element ?
<beneroth> or <code>
<beneroth> or CSS styling
<beneroth> ah you use form.l... hm.. I think you can the easiest customize it with custom CSS file, I guess
<beneroth> I dont' know
<Regenaxer> I think you can use '<style>'
<Regenaxer> (<style> "mono" (<href> "Title" "URL"))
<Regenaxer> btw, I would avoid the 'filter', and output directly in the 'for' loop
<Regenaxer> This avoid building a list first
<Regenaxer> (for F (dir ..) (when (pre? ..) (<style> ... (<href> ...
<Regenaxer> @lib.css has a class 'mono', so the above <style> should work directly
<Regenaxer> .mono {font-family: monospace}
<rob_w> ... testing
<rob_w> ok mono works ... now for the filter
<rob_w> (for F (dir "/media/ram/dat/attic/") (when (pre? "adc_0_") (<style> "mono" (<href> F (pack "/media/ram/dat/attic/" F)))) (<br>))
<rob_w> nothing shows up
<rob_w> sorry me .. i am so out of the training here
<Regenaxer> hehe
<Regenaxer> pre? ... F
<Regenaxer> Perhaps (<ul> NIL (for ... (<li> NIL (<style> .. (<href> ... is better
<Regenaxer> instean of <br> ?
<rob_w> ok .. no u see something , listing but i get extra <br> ..
<Regenaxer> you can keep the <style> outside the loop
<rob_w> but the style (<href ... isnt that the body of the loop ?
<Regenaxer> style makes the whole env
<rob_w> brb lunch
<Regenaxer> cu :)
aw- has quit [Quit: Leaving.]
<rob_w> re
<rob_w> (for F (dir "/media/ram/dat/attic/") (when (pre? "adc_0_" F)) (<style> "mono" (<href> F (pack "/media/ram/dat/attic/" F))) (<br>))
<rob_w> when i do this .. it is not filterd for adc_0_
<Regenaxer> (pre? "adc_0_" F))
<Regenaxer> The 'when' is closed here
<Regenaxer> Pretty-printing helps
<Regenaxer> Or a good editor ;)
<rob_w> seems i have to go back to the basics .. i dont even get what is happing
<Regenaxer> oh :)
<rob_w> let me see
<rob_w> so F is loaded up as a list with the (dir) content .. right ?
<Regenaxer> Yes, each element
<Regenaxer> Try (dir "/media/ram/dat/attic/") in the repl first
<rob_w> ok hang on
<Regenaxer> If you format it, you have:
<Regenaxer> (for F (dir "/media/ram/dat/attic/")
<Regenaxer> (when (pre? "adc_0_" F)
<Regenaxer> (<style> "mono" (<href> F (pack "/media/ram/dat/attic/" F)))
<Regenaxer> (<br>) ) )
<rob_w> ah
<rob_w> thats readable for me
<rob_w> hang on
<Regenaxer> I would do:
<Regenaxer> (<style> "mono"
<Regenaxer> (for F (dir "/media/ram/dat/attic/")
<Regenaxer> (when (pre? "adc_0_" F)
<Regenaxer> (<href> F (pack "/media/ram/dat/attic/" F))
<Regenaxer> (<br>) ) ) )
mtsd has joined #picolisp
<rob_w> yep thats it ;-) thx alot
<Regenaxer> :)
<Regenaxer> And what would you think about this:
<Regenaxer> (<style> "mono"
<Regenaxer> (<ul> NIL
<Regenaxer> (for F (dir "/media/ram/dat/attic/")
<Regenaxer> (when (pre? "adc_0_" F)
<Regenaxer> (<li> NIL
<Regenaxer> (<href> F (pack "/media/ram/dat/attic/" F)) ) ) ) ) )
<Regenaxer> You can then put also styles to <ul> and <li>
<rob_w> i am wrapping it to function, as i need it a few times , then i will test that too
<Regenaxer> good
<Regenaxer> tankf33der here?
<Regenaxer> It seems we still have a gc bug :(
<tankf33der> here
<Regenaxer> hi :)
<rob_w> Regenaxer: the <ul> seems to not work for me
<Regenaxer> oh
<tankf33der> hi all
<rob_w> hi tankf33der
<tankf33der> Regenaxer: how bug triggered? any hints?
<Regenaxer> tankf33der, when I make the newest release with ../pil, I get
<Regenaxer> llvm-as: base.ll:87216:11: error: expected value token ret i64 void
<Regenaxer> the 'void' is wrong
<tankf33der> something new.
<Regenaxer> It outputs correct code with pil64
<tankf33der> i test almost all releases and did last 10 or 20.
<Regenaxer> or with -"gc 999"
<Regenaxer> I did always build with pil21
<Regenaxer> If I just remove one line from the source, it works
<Regenaxer> A real heisenbug again
<Regenaxer> tough to find
<tankf33der> i always did the same
<Regenaxer> Can you see if it reproduces on your system?
<Regenaxer> I just released that version
<tankf33der> i will do asap
<Regenaxer> thanks!
<Regenaxer> I can reproduce on Termux and Debian
<Regenaxer> It seems to depend on *exact*ly that source
<Regenaxer> so that gc happens in just the right moment
<Regenaxer> *if* you can reproduce, please try with your gc+
<Regenaxer> Perhaps we can find the faulty function
<tankf33der> ok
<Regenaxer> I think I saw exactly that error in the beginning
<Regenaxer> then we found some gc issues, and it vanished
<Regenaxer> But now I think we never fixed it :(
<Regenaxer> From the place of the wrong code, I think it has to do with the global '*Phi'
<Regenaxer> It must be one of the functions that maintain *Phi
mtsd has quit [Quit: mtsd]
<tankf33der> 80% done, no problems so far
<Regenaxer> difficult
<Regenaxer> I'm meanwhile inspecting all related sources
<Regenaxer> Could you reproduce the error without gc+ ?
<tankf33der> yes
<tankf33der> pil21 cant create base.ll
<Regenaxer> good!
<tankf33der> with gc+
<tankf33der> oops
<tankf33der> without gc+
<tankf33der> .
<Regenaxer> Well, pil21 can create base.ll, but that one line is wrong
<tankf33der> yeap.
<Regenaxer> I suspect that with gc+ we cannot reproduce it any longer
<Regenaxer> Any change in the code makes the point move somewhere else
<Regenaxer> Ideally we could somehow trace both pil21 and pil64 and see where it gets different
<Regenaxer> I try to 'trace' some functions, redirect stderr to files, and 'diff' those
<Regenaxer> Hmm, as soon as I start in debug mode with '+', the error disappears :(
<Regenaxer> Can't pin it down
orivej has quit [Ping timeout: 260 seconds]
<Regenaxer> It must be a function which is seldom called
<beneroth> interupt?
<Regenaxer> Then it would not happen each time and on every system
<Regenaxer> It must be gc
<Regenaxer> if we call (gc 999) or start in debug mode, it disappears
<Regenaxer> But surely not timing-related
<Regenaxer> I know the result appears here:
<Regenaxer> (for L (cdr (asoq X *Phi))
<Regenaxer> (when (cadr L)
<Regenaxer> (prin
<Regenaxer> " " (cadr L) " = phi "
<Regenaxer>
<Regenaxer> *Phi has NIL in one of the car's
<Regenaxer> So every place that manages *Phi is relevant
<Regenaxer> There are not so many places
<Regenaxer> It is modified *only* in (de phi (Lbl Var)
peterhil has joined #picolisp
<Regenaxer> assoc, conc, list, queue
<Regenaxer> I checket those visually, but think they look good
<Regenaxer> queue is the only one used seldom
<Regenaxer> hmm
<Regenaxer> or it is not *Phi but *Curr, it is 'cons'ed into the list
<Regenaxer> if *Curr were NIL ...
<Regenaxer> No, it is more complicated
<Regenaxer> The lists is patched during forward references
<Regenaxer> so it can be everywhere :(
<Regenaxer> (list Var NIL (cons *Curr ...
<Regenaxer> the NIL is patched
<tankf33der> still playing, no result.
<Regenaxer> yeah, I think gc+ changes the env, so it will not happen
<beneroth> assoc in place of asoq?
<beneroth> hm
<beneroth> sounds like the only way is playing around
<Regenaxer> yeah
<beneroth> and in the end its something obvious in hindsight, I hate those...
<Regenaxer> right, always!
<Regenaxer> You think assoc would change something?
<beneroth> no, just random poking around. I have no expertise.
<Regenaxer> Any idea welcome
<beneroth> the (when (cadr)) cannot be it
<Regenaxer> I think it causes the missing line
<Regenaxer> most surely
<Regenaxer> or the whole line is missing
<Regenaxer> I put a 'msg' there and tried to 'diff'
<beneroth> are all negative branches correctly handled? meaning (asoq) when X or *Phi is NIL, cdr when called with nil... such things... (well I'm sure you tested everything out of it...)
<Regenaxer> but the line contains (box)ed symbols
<Regenaxer> so always different
<beneroth> hm
<beneroth> anonymous boxes are pretty close to pointer games :)
<Regenaxer> :)
<Regenaxer> it needs to generate symbols
<Regenaxer> for forward labels iirc
<beneroth> so memory allocation, therefore (gc) makes the difference...
<Regenaxer> right
<beneroth> question is then if the error happens during allocation, or in the input which causes them...
<beneroth> hm
<beneroth> just random ideas
<Regenaxer> memory allocation happens all the time
<beneroth> I'm on a hard deadline, no time to play around :(
<beneroth> yeah
<Regenaxer> already when reading the source .l files
<Regenaxer> No worry!
<beneroth> internal memory allocation for local bindings? e.g. internal stuff from (for) ?
<beneroth> hm
<beneroth> you probably better search yourself than listening to my random ramblings :)
<Regenaxer> It must be something seldom
<Regenaxer> No, thanks for input! :)
<Regenaxer> If it were a common, often used function, we would have found it I think
<beneroth> if its not memory allocation, than maybe in the step when this new memory gets written or read... and something was not written correctly, which might be the cause - or the cause is in the input issueing the memory operations...
<Regenaxer> all of tankf33der's tests
<beneroth> could be very special case of something common...
<beneroth> but yeah
<Regenaxer> All of those gc things are errors in stack saves
<Regenaxer> saving intermediate results
<tankf33der> all trivial tests passed.
<tankf33der> no lucky so far.
<Regenaxer> T
<beneroth> can you somehow verify intermediate results / intermediate stack state?
<Regenaxer> yes, tankf33der's gc+ test does that
<Regenaxer> it forces a gc at any possible point
<Regenaxer> hoping to get a crash
<beneroth> nice idea
<tankf33der> running under clang's sanitizer.
<beneroth> profiling with valgrind?
<Regenaxer> Valgrind wont help
<Regenaxer> it adresses mallocs
<beneroth> T
<beneroth> its in the internal memory handling
<beneroth> right, i see
<Regenaxer> but malloc is only for large heap chunks
<Regenaxer> or some strings in native calls etc
<beneroth> T
<Regenaxer> Perhaps we can improve gc+ ?
<beneroth> something writes too much or too little somewhere, it sounds like
<Regenaxer> Not waiting for crash
<Regenaxer> but active checks?
<beneroth> or giving more output, which steps were happening right before crash?
<Regenaxer> yes
<beneroth> or repeating the issue until crash is found multiple times
<beneroth> a fuzzy oracle
<beneroth> yeah active checks
<Regenaxer> Problem is that it crashes not at all
<beneroth> I see
<Regenaxer> Just forgets data
<beneroth> gc+ should output something so you can re-run the exact same test, kinda a list of the random choices it took
<Regenaxer> yes, and then diff with the correct version
<tankf33der> http://ix.io/2tSO
<Regenaxer> oh! cool
<beneroth> nice
<Regenaxer> was it in the build?
<tankf33der> what if it generates and writes garbage to ll file?
<tankf33der> -ASM = clang
<tankf33der> +ASM = clang -g -fsanitize=memory
<beneroth> so it writes somewhere to little, or more than it should
<tankf33der> for Makefile
<Regenaxer> hmm
<Regenaxer> use-of-uninitialized-value
<Regenaxer> what value is that?
<tankf33der> unknown.
<Regenaxer> stray pointer?
<beneroth> and probably it was a value which was previously written, so the size during write or read of that value was wrongly handled
<beneroth> hm
<Regenaxer> wrBytes is pretty simple
<beneroth> I guess the error is not at wrBytes, but where the stuff comes from
<Regenaxer> yes
<Regenaxer> global file list
<Regenaxer> _putStdout
<Regenaxer> (outFile (val $OutFile))
<Regenaxer> current output channel
<Regenaxer> (wrBytes (Out: fd) (Out: (buf)) BUFSIZ)
<Regenaxer> But that code is heavy-used
<Regenaxer> if the memory is destroyed, it is from somewhere else
<beneroth> (buf) or BUFSIZ
<Regenaxer> only (buf)
<beneroth> BUFSIZ is always the same?
<beneroth> const
<Regenaxer> yes, a const
<Regenaxer> This outfile stuff is used all the time
<beneroth> so maybe (buf) happens somehow to be smaller than BUFSIZ?
<Regenaxer> the problem may be at some distant point
<beneroth> yeah tricky chained bug
<beneroth> T
<beneroth> usually one needs C++ to produce such :P
orivej has joined #picolisp
<Regenaxer> well, on that level we are close
<Regenaxer> to C++ like stuff
<Regenaxer> (struct outFile
<Regenaxer> (ix 8 i64) # Buffer index
<Regenaxer> (fd 4 i32) # File descriptor
<Regenaxer> (buf BUFSIZ i8) # Buffer
<Regenaxer> (tty 1 i1) ) # TTY flag
<Regenaxer> the buffer is fixed size in the struct
<Regenaxer> So it does not help
<beneroth> when is this struct instanced? on every (Out:) fresh?
<Regenaxer> yes, every out channel has its own
<Regenaxer> Same code in all pils
<Regenaxer> since pil-1998 iirc
aw- has joined #picolisp
<Regenaxer> pil32 and pil64, not mini or ersatz I think
<beneroth> maybe add some code which always initializes the buffer during instancing - I know you don't want to do that in general, but I would expect the error to vanish then
<Regenaxer> Anyway, well-tested
<Regenaxer> I think it is not related to that buffer
<beneroth> maybe log sizes of writes/reads to that buffer
<beneroth> no?
<Regenaxer> not at all
<Regenaxer> it is a symptom
<Regenaxer> not the cause
<beneroth> ah you mean it is just a side effect that it shows in that region of memory
<Regenaxer> yes
<beneroth> a stack overflow somewhere
<Regenaxer> No overflow
<beneroth> but then the error should show differently in different test runs
<Regenaxer> I'm not sure what that error means anyway
<Regenaxer> what "uninitialized"?
<Regenaxer> makes no sense
<beneroth> memory that was never written
<beneroth> makes sense in C/C++
<beneroth> you should not read it
<Regenaxer> By checking patterns?
<beneroth> (unless you want pseudo random values)
<beneroth> by tracking all memory writes/reads
<beneroth> int i; (print "%i", i);
<beneroth> i is used uninitialized.
<beneroth> its value is quasi random (leftover from whatever happened to be at that place in RAM before)
<Regenaxer> yes, on the stack
<Regenaxer> but on malloc'ed mem?
<beneroth> same
<Regenaxer> in that buffer?
<beneroth> malloc does not set the values
<Regenaxer> how can it detect? Write a pattern?
<Regenaxer> 0xDEADFACE
<beneroth> I used memcpy or so (must lookup the exact name) to initialize such buffers
<beneroth> or keep a list of a memory ranges which were never written to, when a read falls in that range -> error
<Regenaxer> checks CPU memory accesses?
<Regenaxer> every load and store?
<Regenaxer> Anyway
<Regenaxer> putStdout is surely not wrong
<Regenaxer> As I said
<Regenaxer> the problem must be a seldom-used thing
<Regenaxer> else we would have seen at all those tests
<Regenaxer> and we self-build pil21 since months
<Regenaxer> such putStdout stuff would never work
<Regenaxer> [0x72100000000c, 8) looks like stack
<Regenaxer> typical stack area
<Regenaxer> 8-aligned
<Regenaxer> hmm
<Regenaxer> 'c' is not 8-aligned
<tankf33der> must be afk.
<tankf33der> cu.
<tankf33der> some complex codebase is still running under gc+.
<Regenaxer> ok
<Regenaxer> Maybe it is indeed not gc
<Regenaxer> but some wrong pointer somewhere else
<Regenaxer> Would also vanish with changed initial setup
rob_w has quit [Remote host closed the connection]
<Regenaxer> 'fully' returns a different result in one of 18561 calls
<Regenaxer> digging into it
<tankf33der> how you got all results?
<Regenaxer> I put 'msg' in the code and compare pil64 and pil21
<Regenaxer> 'diff' says:
<Regenaxer> 16646c16646
<Regenaxer> < ($355744627436 NIL (15 . "%77") (16 . "%95"))
<Regenaxer> ---
<Regenaxer> > ($362427317706 NIL (15 . "%77") (16 . "]^G"))
<Regenaxer> The symbol at 16 is destroyed
<Regenaxer> the only different line of 18561 lines
orivej has quit [Ping timeout: 265 seconds]
<Regenaxer> Question is, was that generated faulty by 'pack'? Or is it destroyed by 'gc'
<Regenaxer> Not I track it backwards
<Regenaxer> The 'phi' function already gets that faulty value
<Regenaxer> The faulty 'phi' call comes from 'if' or ifn
<beneroth> good hunt
<Regenaxer> hard
<Regenaxer> The bug keeps vanishing whenever I change something
<beneroth> hardest class of bugs..heisenbug
<Regenaxer> yeah
<Regenaxer> I'm doing this:
<Regenaxer> (cd src; pil lib/llvm.l main.l -bye) >/dev/null 2>a
<Regenaxer> then the same for pil21 >b
<Regenaxer> and diff a b
<beneroth> tough
<beneroth> though
<Regenaxer> T
<beneroth> could the mistake be most likely a corrupted last cell (fin) of a list? that it doesn't cause more problems in most uses of such a list?
<beneroth> just another random idea
<Regenaxer> No idea
<Regenaxer> It is a corrupted symbol, not the cell
<Regenaxer> the name
<beneroth> ok
<beneroth> not a list, a symbol
<Regenaxer> I suspected 'pack'
<Regenaxer> yes
orivej has joined #picolisp
<beneroth> name, that's already pretty specifc
<beneroth> pack or format or any
<Regenaxer> I did not find yet whether the name is construcwed bad, or destroyed afterwaards
<Regenaxer> destroy would be gc
<Regenaxer> construct would be pack
<beneroth> all ascii range, or multibyte UTF-8 stuff?
<Regenaxer> Nope
<Regenaxer> just a pack of "%" and 95
<beneroth> hm...
<beneroth> must be a special case, as pack is certainly used all over the place
<Regenaxer> And works 99.99 %
<Regenaxer> no
<Regenaxer> it is just the symptom, remember
<beneroth> T
<Regenaxer> Now I'm in 'let'
<Regenaxer> it calls (prog1 ...
<Regenaxer> *inside* prog1 it is good
<Regenaxer> but the whole call fails
<beneroth> I bet the causing stuff is also only causing that corruption when there is some previous corruption somewhere completely else
<Regenaxer> But "good" does not mean good
<Regenaxer> just no symptom
<beneroth> stuff with the @ symbol going on?
<beneroth> hm
<Regenaxer> yes, previous corruption probably
* beneroth just noticed recently that the 'unless in (prog1 (foo) (unless ..) (unless ...)) are changing the @ within prog1...
<beneroth> (pil64 ofc)
<Regenaxer> I check
<beneroth> string representation transcoder within pack?
<beneroth> I mean that thing which gets the string representation of 'any it got
<beneroth> what happens if some input there would be corrupt?
<beneroth> hmmm
<Regenaxer> the behavior of prog1 @ should be the same
<Regenaxer> in pil21 and 64
<beneroth> T
<beneroth> well I wanted to use (prog1) instead of a (let A ... A)
<beneroth> works well, unless the prog1 contains any conditions which set @
<Regenaxer> But it is correct I think
<beneroth> then @ at the end of prog1 is not the same as initially set
<beneroth> but that is correct
<beneroth> T
<Regenaxer> : (prog1 3 (msg @) (and 7)) @
<Regenaxer> 3
<Regenaxer> -> 7
<beneroth> yep that I meant
<Regenaxer> You expected the last @ to be 3?
<beneroth> I overlooked that sideffect at first.. but it is obviously correct
<beneroth> yes, I expected the @ only to change locally within the unless
<beneroth> but @ is rebinding, not shadowing, always
<Regenaxer> yes
<beneroth> pack bug sounds like string-representation-transcoder bug to me. or bug when it gets already
<beneroth> corrupted input
<Regenaxer> it is bound locally only in Lisp level funs
<beneroth> I guess the string transcoder must be able to handle all kinds of pil values, all kinds of pointer tags, right?
<beneroth> Regenaxer, makes sense
<beneroth> ah
<beneroth> ok
<beneroth> that might be the explanation why I thought wrong about it
<Regenaxer> ok, I dig more ... :)
<Regenaxer> I check 'prog1'
<Regenaxer> though I believe it is not the culprit
<beneroth> ah no
<beneroth> sorry, never meant to imply that
<beneroth> I would look at the pack code :)
<beneroth> especially how it would react to corrupted input
<Regenaxer> yes, 'prog1' is all right
<Regenaxer> I found one place where 'pack' seems to return garbage immediately
<Regenaxer> no further nesting
<tankf33der> http://ix.io/2tTS
<tankf33der> i found this bad (strange) behaviour under gc+
<Regenaxer> What exactly is wrong?
orivej has quit [Ping timeout: 265 seconds]
<Regenaxer> the trail looks good, no?
<tankf33der> but test failed.
<Regenaxer> yeah
<Regenaxer> mysterious
<tankf33der> ah, the same for pil64. so ok
<Regenaxer> ah
<Regenaxer> (I hope ok ;)
<tankf33der> http://ix.io/2tU1
<tankf33der> i did it
<Regenaxer> cool
<Regenaxer> Is it 'pack'?
<tankf33der> now new challenge find core file in system
<tankf33der> :)
<Regenaxer> You always make a dump?
<tankf33der> it should be automagically
<Regenaxer> Some kernel option iirc
<Regenaxer> OK, it packs numbers
<Regenaxer> like my case, where it packs "%" and 95
<tankf33der> and crash on flow.l file
<tankf33der> bt
<tankf33der> http://ix.io/2tU6
<Regenaxer> in gc
<tankf33der> i see _trail
<Regenaxer> yes
<Regenaxer> but make does not call trail
<tankf33der> and i *cant* repeat if I dont press Ctrl-C somewhere in the middle and *rerun* again in repl
<Regenaxer> oh
<Regenaxer> Is a lot of 'pack' involved?
<tankf33der> i think several
<Regenaxer> (pack (need 40960 0))?
<tankf33der> http://ix.io/2tU7
<tankf33der> for example this kind of trivial exec is always ok
<tankf33der> impossible to repeat
<Regenaxer> hmm
<Regenaxer> Seems that something is damaged *after* pack
<tankf33der> as you can see only several packs called
<tankf33der> i got crash on the same flow file
<Regenaxer> T
<Regenaxer> Sorry, I must stop
<Regenaxer> I try later
<tankf33der> http://ix.io/2tUj
<tankf33der> this is easiest way to repeat
<tankf33der> afk.
orivej has joined #picolisp
<Regenaxer> Ret
<Regenaxer> sorry
<Regenaxer> OK, but this is a different issue
<Regenaxer> As I said, the stack unwinding stuff is not finished yey
<Regenaxer> yet
<Regenaxer> Not sure what state the stack is in in a break interrupt
<Regenaxer> So (trail) gets confused perhaps :)
<Regenaxer> Unnwind is used in catch/throw, errors, coroutines etc.
<Regenaxer> "t1.l" is not needed
<Regenaxer> Just ^C and then (trail) in the breakpoint
<Regenaxer> Let's postpone until unwinding is done
<Regenaxer> I build a stack sanity check into 'pack' now
<Regenaxer> No results
<Regenaxer> 'pack' seems OK
<Regenaxer> Also, it is not a clear candidate, as it is called so very often
<tankf33der> i will keep playing
<Regenaxer> good
<Regenaxer> Perhaps not 'pack' directly, but something is wrong with it
<tankf33der> my gorlansky code base failed after several hpurs
<tankf33der> promising.
<tankf33der> this test failed on gc+
<Regenaxer> ok
<Regenaxer> calls 'pack\ too ;)
<Regenaxer> Can you boil it down a little?
<Regenaxer> Let's continue tomorrow. I'm rather tired, was a busy day
<tankf33der> sure
<tankf33der> cu
<Regenaxer> We will find it :)
<Regenaxer> thanks a lot!!
<tankf33der> http://ix.io/2tVu
<tankf33der> code above which fails on gc+
<tankf33der> and ok on pil64 and pil21.
aw- has quit [Quit: Leaving.]