Parrot 3.7.0 "Wanda" | parrot.org | Log: irclog.perlgeek.de/parrot/today | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 6 September 2011.
dalek rrot: cd7b163 | NotFound++ | frontend/parrot2/prt0. (2 files):
move call to main_sub out of the try block to allow tailcall
00:01
plobsing_ NotFound: why do you need to disable the tailcall optimization to keep the handlers active? 00:04
handlers stay active during tailcalls. 00:05
the frame doesn't get collected in that case, but as far as the callchain is concerned, the frame is gone
it worked fine before
00:05 patspam joined
NotFound plobsing_: trac.parrot.org/parrot/ticket/1903 00:09
00:10 patspam joined
plobsing_ um... I think then that tailcalling method invocation should change 00:12
exception handlers across tailcalls is one of the advantages of CPS design
dalek sella/harness_test: bdf6461 | Whiteknight++ | src/mockobject/MockObject.winxed:
fix MockObject.default_mock_factory()
00:13
sella/harness_test: c1073e7 | Whiteknight++ | / (3 files):
a few small fixes for Harness, found during testing. Implement all the rest of the tests for the Harness class
NotFound plobsing_: maybe, but in the meantime I prefer a consistent behaviour in winxed.
And another point: if the frame is not collected, the GCables in the registers are not collected, so you must be careful about what you let around in the registers. 00:15
plobsing_ all this is true of anything that captures a continuation in the current frame 00:16
exception handlers are just continuations 00:17
NotFound plobsing_: yes, but winxed try block isn't just a parrot exception handler, it has its own rules. 00:18
Ane te rule is to follow the principle of minimal surprise. 00:19
plobsing_ my minimal surprise would be for a call in tail position to be a tailcall 00:20
00:21 schmooster joined
NotFound plobsing_: my minimal surprise is no having a handler active if is not prsent in the backtrace. 00:21
It already surprised me a lot of times.
plobsing_ I suppose I can see that angle. 00:23
is there any way to force a tailcall in winxed?
NotFound And with TT #1903, is surprising to have different ways depending if it's a function or a method call. 00:24
plobsing_ or, can ${ ... pir ... } blocks get access to labels?
NotFound: I'm looking into it right now
NotFound I think I should add some way to explicitly tailcall, after all. 00:25
You can use labels, but I prefer to avoid the need to use pirops. 00:26
Maybe a modifier in try will be the better way. 00:27
I suppose most uses will want the same way in all the block. 00:28
plobsing_ NotFound: how does one use labels in pirops? 00:29
NotFound plobsing_: ${ goto :label };
plobsing_ ah. I was expecting something closer to gcc's computed goto syntax 00:30
NotFound Is one of the few things documented in winxed.org/ but nobody reads it X-)
plobsing_ NotFound: I thought I knew the language, then you changed it ;) 00:31
NotFound plobsing_: I've never used gcc computed goto
plobsing_: you mean using the * operator? That will need a lot more changes in the compiler. 00:34
plobsing_ NotFound: no, the other one - &&lbl 00:36
since you are taking the address of the label
but your syntax works too 00:37
NotFound Mmmm... that may be doable, but probably adding too much goto support to winxed will be considered harmful ;) 00:38
plobsing_ so prt0 could use that label support to set up its own exception handler that didn't follow the winxed try block rules 00:40
NotFound I was thinking about that, but I'm starting to think that more support in winxed will be preferable. try already support modifiers, so adding one more is not a big deal in the design nor in the implementation. 00:42
plobsing_ less work for me, more work for you. who am I to complain? 00:44
NotFound Will be more work to eventually add support for all pirops used if switching to direct code generation. 00:45
plobsing_ I don't understand. 00:47
NotFound plobsing_: if some day we don't use PIR as code generator, I may need to add support for all pirops frequently used. 00:48
So the more I disencourage pirop use, the better.
plobsing_ If someday we no longer use PIR as a code generator, I'm sure as part of the transition, we'll write an abstraction over PBC generation that translates pirops to the underlying ops 00:49
NQP uses it too
the ops aren't the particularly nasty part of PIR anyways.
it's all the stuff that *aren't* ops
NotFound plobsing_: yes, but my way to abstract that things in winxed is to add modifiers and builtins. 00:50
plobsing_ there are pitfalls to that strategy (cf: .sub modifiers) 00:53
NotFound I'm also thinking about adding a namespace for some non general purpose builtins, and not make them accesible by default.
plobsing_ you do have a lot of residual built-ins from the days before pirops 00:55
00:55 Kulag joined
NotFound Yes, I must deprecate some that are no longer needed. 00:56
dalek nxed: e2ebd59 | NotFound++ | winxedst1.winxed:
new modifier for try: allowtailcall
01:11
nxed: 3ff9e4b | NotFound++ | / (2 files):
update NEWS and installable compiler
01:14
01:20 rurban joined
dalek rrot: 607dead | NotFound++ | / (3 files):
update winxed snapshot to 3ff9e4b6ee (allowtailcall modifier in try)
01:25
dukeleto ~~ 01:29
01:29 particle1 joined
cotto hio dukeleto 01:30
01:30 jsut joined
dukeleto cotto: howdy 01:31
02:18 patspam joined, particle joined 02:29 JimmyZ joined
JimmyZ would like to resurrect Weekend Hackathon 02:33
plobsing_ JimmyZ: what's stopping you? 02:41
dalek tracwiki: v2 | jimmy++ | HLLInteroperability 02:46
tracwiki: trac.parrot.org/parrot/wiki/HLLInte...ction=diff
JimmyZ plobsing_: nothing is stopping me, but stopping parrot :) 02:54
plobsing_ JimmyZ: you could be a one man hackathon 03:06
03:56 bacek_at_work joined 03:59 aloha joined 04:22 rfw joined 04:27 fperrad joined 05:00 nopaste joined 05:09 plobsing joined 06:11 SHODAN joined 07:13 nbrown joined 08:14 Coke joined 09:43 Coke joined 09:51 contingencyplan joined 09:58 Coke joined 10:20 jsut_ joined 10:43 Coke joined 11:16 Coke joined 11:35 Psyche^ joined
dalek rrot: 865c8eb | dukeleto++ | t/pir/interop.t:
[t] Add a few more hll interop tests
11:59
12:13 Coke joined 12:34 patspam joined 12:53 whiteknight joined, bluescreen joined
whiteknight good morning, #parrot 12:54
moritz good morning, whiteknight 12:55
whiteknight hello moritz, how are you today? 12:56
moritz whiteknight: same as usual :-) 12:57
I'm trying to find my path in the jungle of graphics cards (for high-ish performance computations)
whiteknight I was looking into CUDA bindings for Parrot at one point. That would have been a fun project 12:58
moritz we're about to buy some simulation software that already supports CUDA, and spend a bit of money on the GPU 12:59
we just don't know which, and that's the hard part.
13:03 ambs joined
arnsholt If it's CUDA, I suppose Nvidia's catalog is where you're looking 13:04
I think our brand new workstations here have Quadro cards in them
moritz arnsholt: en.wikipedia.org/wiki/Nvidia_Tesla#...igurations is what I was looking at 13:05
arnsholt Yeah, that looks even more appropriate 13:06
13:11 patspam joined 13:36 PacoLinux_ joined 13:40 JimmyZ joined 13:49 ingy joined 13:54 ingy joined 14:12 patspam joined 14:25 mtk joined 15:01 simcop2387_ joined 15:02 whiteknight joined 15:06 darbelo joined
dukeleto ~~ 15:07
moritz ..
15:08 aloha joined 15:12 HSlayer joined 15:16 bacek_at_work joined
dukeleto msg Tene can you add more docs to runtime/parrot/languages/parrot/parrot.pir about how to use it? It would greatly help me write more tests for it. 15:20
aloha OK. I'll deliver the message.
dalek kudo/nom: ee12e5a | moritz++ | t/02-embed/01-load.t:
[t] fix deprecated use of run()

t/02-embed/01-load.t still fails for other reason though
15:23
kudo/nom: 08ef941 | Coke++ | t/spectest.data:
track failures/run fudges
15:55
15:57 alester joined
dalek rrot: 91cdef1 | NotFound++ | frontend/parrot2/prt0. (2 files):
use indexof builtin instead of index pirop
15:57
rrot: 7b78212 | NotFound++ | frontend/parrot2/prt0. (2 files):
tiny optimizations in frontend:

get the interp at the points of use instead of passing around use an auxiliar function to avoid leaving temporaries alive in the exception handler context when calling main
16:27
whiteknight NotFound++ 16:29
NotFound whiteknight: you said that imcc now is not linked into libparot? 16:45
whiteknight no, it still is
but, we might be able to cut that out soon
there are a few bits in src/packfile/api.c and src/interp/inter_misc.c that are still depending on it 16:46
NotFound What will be the way to load_language a default pir compiler?
whiteknight load_bytecode_s still accepts .pir files and compiles them
and, that's a feature I know NQP and Rakudo are still using 16:47
NotFound nqp, nqp-rx or both?
whiteknight at least nqp-rx 16:48
we need to remove load_bytecode_s, or at least stop it from compiling PIR files
if we do the second, we can save most existing code and spare the opcode
NotFound I'll say we can start by emiting a warning, but I'm almost sure people will cry loudly if we do. 16:49
16:51 mj41 joined
whiteknight the big problem that required it was that PIR previously wasn't able to create PBC files 16:51
but, the new frontend is proof, we can do that now
NotFound t/pir/interop.t uses: load_language 'parrot' - Is that the recomended way?
whiteknight I think that's a different thing 16:52
I think that's in runtime/parrot/languages/parrot
dukeleto NotFound: i added that test
NotFound: that is Tene++'s hll interop stuff
which i am attempting to test so it doesn't break again in the future 16:53
NotFound load_bytecode 'PCT.pbc'.... urgh, I hope we don't need to do that to compiler pir.
whiteknight what? 16:54
NotFound Is what runtime/parrot/languages/parrot/parrot.pir does.
dukeleto whiteknight: did you see my rosella issue?
cotto_work ~~
whiteknight dukeleto: Yeah, I tried to get ahold of you yesterday. I wasn't able to reproduce it
dukeleto: Can you pull up to head and give it a shot 16:55
dukeleto whiteknight: sure
dukeleto enjoys typing winxed setup.winxed clean build test install 16:56
whiteknight: odd, the above command results in : Result: NOTESTS 16:57
whiteknight: but then winxed setup.winxed test works
whiteknight I think I have the setup.winxed script screwed up. it handles test differently
I need to fix that
NotFound That code seems to assume that interoperability via load_language compreg requires a P6metaclass. 16:58
I don't like that.
dukeleto NotFound: nor do I
whiteknight: do you want me to use the latest winxed, or the latest winxed in parrot core ? 16:59
whiteknight I don't think Rosella is using the brand-spanking newest winxed
NotFound dukeleto: at this point they are the same
dukeleto whiteknight: i think i have both an old winxed and whatever winxed comes in parrot installed, which is causing some shenanigans
whiteknight I always develop Rosella based on the winxed in the parrot repo
dukeleto whiteknight: ok, good to know
whiteknight shenanigans!?!?!
dukeleto NotFound: depending on when I last installed, yes ;) 17:00
whiteknight: i can't reproduce the error I was seeing, but every test in parrot-libgit2 fails. Blarg. I am going to re-compile the latest parrot and the recompile rosella and try again
whiteknight: also, # object is not instance_of 17:01
whiteknight what?
17:01 HSlayer|2 joined
dukeleto whiteknight: is not very friendly. will you accept patches to make failed assertions have useful output ? 17:01
whiteknight: when instanceOf() fails, i just get "object is not instance of"
whiteknight dukeleto: That's just the default message. You're welcome to update the defaults or provide a custom message
$!assert.instance_of(obj, type, "This is a custom message") 17:02
or whatever the order of the first two args is
NotFound You can use the new winxed builtin __ASSERT__ ... wich just tell filename and name ;)
whiteknight but yes, we can definitely improve the default error messages 17:03
NotFound and line, I mean
dukeleto NotFound: i am really liking winxed these days. Thanks for all of your work. whiteknight++ too
whiteknight NotFound: I haven't looked at that yet. It has tests/examples? 17:04
NotFound whiteknight: is used in the compiler, in its own definition. 17:06
whiteknight oh, fun
cotto_work this doesn't look good: www.sfconservancy.org/ is 404
NotFound Is just sugar for if (DEBUG && ! condition) die
whiteknight gotcha 17:07
okay, so that disappears when we aren't in debug mode? I like that
dukeleto i wonder if they were hosted on the same boxen as kernel.org and linux.com ... 17:09
whiteknight I haven't used any __DEBUG__ in Rosella yet. I really need to 17:10
cotto_work dukeleto: looks like nothing serious. s/www// works 17:12
NotFound whiteknight: yes, disappears completely. 17:13
whiteknight that makes me happy
NotFound Is your responsability to write a condition without secondary effects. 17:14
whiteknight of course
NotFound Unless you want debug and non debug versions working differently ;) 17:15
whiteknight no. Rosella will probably use it to generate a lot of state information
dukeleto cotto_work: i sent an email to the SFC folks letting them know 17:17
cotto_work dukeleto: I hopped on #conservancy on freenode. bkuhn is aware of it 17:18
dukeleto cotto_work: cool 17:19
cotto_work Heh. There's a ms conference called BUILD. Perl 6 must be more influential than I thought.
dukeleto lulz 17:20
17:23 preflex_ joined
dukeleto whiteknight: same bug in rosella persists after nuking everything from space and recompiling everything: get_iter() not implemented in class 'Rosella;Harness;TestRun' 17:33
current instr.: 'parrot;Rosella;Harness;run_internal' pc 446 (rosella/harness.pir:277) (rosella/harness.winxed:308)
whiteknight that's very weird
dukeleto whiteknight: perhaps my harness needs updating due to changes in the API?
whiteknight: github.com/letolabs/parrot-libgit2.../t/harness
whiteknight the API changes should be all backwards compatible 17:34
hmm...something might not be. 17:35
dukeleto whiteknight: also, all my instanceOf tests that were passing on a rosella from a few months ago now fail :(
whiteknight: ooooooh, i have a small winxed file which intermittently coredump parrots 17:36
whiteknight: gist.github.com/1211864 17:38
NotFound: gist.github.com/1211864 <-- drop somem knowledge bombs if you have 'em
whiteknight: looks like a GC bug
whiteknight: that file is a golfed version of one of my parrot-libgit2 tests 17:39
Tene dukeleto: sorry, the past several days have been super busy for me. I'm planning to spend tonight working on parrot stuff.
So, maybe around 18:00 pacific time
dukeleto Tene: ok. take a loot at t/pir/interop.t and the "make interop_test" target (which just runs that single file, for now) 17:40
17:41 mj41 joined
dukeleto whiteknight: note that I am doing "bad thiings" by passing in a StructView to a C function at git_repository_index(git_index) 17:41
cotto_work dukeleto: I want to pull dafrito's updates to POD::Simple. objections?
dukeleto whiteknight: but still, that intermittent core dump is no bueno
NotFound dukeleto: the beauty of winxed being pure pir is that segfaults are never its fault ;)
dukeleto cotto_work: nope.
NotFound: good insurance :)
cotto_work pushes the button
JimmyZ++ for asking about that 17:42
dalek rrot: 9056dcb | cotto++ | lib/Pod/Simple (29 files):
Merge pull request #154 from dafrito/pod-simple-upgrade

Upgrade Parrot's Pod::Simple to latest upstream
NotFound dukeleto: I think plobsing made clear that StructView should never be used as a pointer.
whiteknight dukeleto: blah, I did break the interface. I can get it patched for you now, or I can fix it when I get home 17:43
unintentional break
dukeleto whiteknight: just let me know what I have to change
cotto_work dafrito++
NotFound dukeleto: if you pass bad things to NCI, segfaults aren't avoidable.
dukeleto whiteknight: no worries. I am sure I am one of your first "pesky" users that actually wants stuff to work :)
NotFound: even intermittent segfaults due to a GC bug? 17:44
dukeleto is a big fan of deterministic segfaults
whiteknight dukeleto: The line $harness.run($testrun, $testview); takes an array now as the first parameter. So, just change it to [$testrun]
NotFound dukeleto: as the C++ people usually said, undefined behavior can give any result, even destroying the planet.
I think I'm going to implement get_pointer in StructView, throwing something ugly. 17:45
whiteknight what does StructView do, if not allow passing structures by pointer? 17:47
NotFound dukeleto: en.wikipedia.org/wiki/User:CompuHacker/CHDS9000
whiteknight: you use it together with a pointer-provider pmc. 17:48
whiteknight ok
dukeleto whiteknight: plobsing informed me that i need to call sv.alloc() to get a pointer to a structview that can be passed to c functions
whiteknight ok 17:49
dukeleto whiteknight: that code snippet is from before i learned that
NotFound "Git2::Index" ? Is that a Rosella idiom? 17:50
dukeleto NotFound: nope. It is attempting to refer to a Winxed namespace
NotFound: what should I be doing?
NotFound: or, maybe it is an idiom, that I wasn't aware of. What is the non-idiomatic way of saying that? 17:51
NotFound dukeleto: the recent ways to get a namespace or a class objects are the namespace and class operators: class Git2.Index for example. 17:52
whiteknight dukeleto: I think I rewrote those parts of Rosella a long time ago when Winxed added the "class" operator
self.assert.instance_of(git_index, class Git2.Index); 17:53
dukeleto whiteknight: the [$testrun] fixed stuff partially, but now I get: gist.github.com/1211909 17:54
whiteknight ...lolwat?
where the hell is a ParrotInterpreter coming from? 17:55
If that's actually a failure now, it wasn't yesterday. Did something change in Winxed with respect to precidence? 17:56
dukeleto whiteknight: good question. The unhelpful easter bunny? 17:57
whiteknight the line in question is : string exe_name = getinterp()[IGLOBALS_EXECUTABLE];
dalek rrot-libgit2: 1406dde | dukeleto++ | rosella:
Remove the rosella submodule for now. People who want to run tests will have to install rosella, for now
rrot-libgit2: 82ea85a | dukeleto++ | t/harness:
Update our harness to deal with a Rosella API change, whiteknight++
dukeleto whiteknight: that failure happens on the very latest parrot + rosella 17:58
whiteknight: the winxed snapshot in parrot got updated yesterday 17:59
cotto_work vanillajava.blogspot.com/2011/09/ex...-java.html
18:05 bluescreen joined
NotFound string? Shouldn't that be var? 18:07
18:08 darbelo joined
NotFound I don't think any change in winxed should have changed the code generated by that line. 18:08
dukeleto does anybody have root or sudo access on parrotvm.osuosl.org ? 18:11
whiteknight NotFound: no, we definitely want a string 18:14
Coke yes. 18:15
dukeleto: I do. what's up?
dukeleto Coke: are you on parrot-directors? 18:16
Coke argh. no, I /used/ to. I'm now getting told no access trying to ssh in.
no, all non directors were removed.
NotFound whiteknight: but ParrotInterpreter doesn't provide one.
dukeleto Coke: you know that whole kernel.org/linux.com debacle? That was a security breach as OSUOSL. They are now asking us to look for suspicious stuff on our vm
s/breach as/breach at/ 18:17
NotFound whiteknight: solution: string exe_name = var(getinterp()[IGLOBALS_EXECUTABLE]);
Coke doesn't sound familiar no; and I can't look for suspicious stuff, as I no longer have access. (I did about ... what, 3 days ago?)
whiteknight yeah, I mean I'm sure that works. but it was working fine yesterday
NotFound Yesterday parrot and yesterday winxed? 18:18
dukeleto Coke: they disabled all password logins, only ssh key logins are allowed now 18:19
Coke I have never used keyed access to the box.
18:19 contingencyplan joined
Coke so, I'm locked out for now. I only ever used it to update docs.parrot.org (don't need it for forseeable future) and restarting smolder (admins don't want us doing that by hand anyway). So I'm good. ;) 18:20
dukeleto: thanks for the headsup. would have been very surprised if I had tried that in a week. 18:21
NotFound whiteknight: winxed_1_1 generates the same code as master for -e 'string s = getinterp()[11];' 18:22
I can't see any recent parrot change that may have caused it, 18:26
18:36 darbelo_ joined
dukeleto ANNOUNCE: OSL was hacked, and if you had anything security related on parrotvm.osuosl.org (such as a private ssh key), you should disavow it. Our specific VM wasn't hacked (as far as we know), but better safe than sorry. 18:36
also, if you ever ssh'ed to a server from parrotvm.osuosl.org, I would change that password/key as well.
Since naughty people had full access to the OSL network. 18:38
18:39 fperrad joined
cotto_work dukeleto: thanks for the info 18:50
dukeleto: are they saying that the damage has been contained? 18:51
dukeleto cotto_work: they are saying very little. No public announcement, yet. 18:52
cotto_work: they are still doing a post-mortem, it seems
cotto_work dukeleto: ok. I only have my public keys there, so I don't care if an arbitrary hacker can grant me access to his machine. ;) 18:54
dukeleto cotto_work: sure. Mostly I would be concerned if you stored a private key there or other sensitive info. 18:56
cotto_work dukeleto: not sure why anyone would do that, but it's a concern 18:59
19:00 dmalcolm joined
dukeleto cotto_work: evidently some kernel devs had private keys on kernel.org or something like that. 19:02
19:03 soh_cah_toa joined 19:12 soh_cah_toa_ joined
cotto_work dukeleto: ow 19:15
19:22 PacoLinux_ joined
Coke rakudo: say 1998-1953 19:48
p6eval rakudo 08ef94: OUTPUT«45␤»
19:53 ambs joined 20:13 perlite joined 20:16 rurban joined 20:30 benabik joined
benabik o/ 21:02
cotto_work \\o 21:07
benabik cotto_work: What's happening? I've been out of town for a few days. 21:08
dalek kudo/nom: 831b481 | jonathan++ | src/Perl6/Actions.pm:
Fix thinko in fakesignature action; another little step for putting :(...) := ... style binding back.
21:14
kudo/nom: ad9639a | jonathan++ | src/core/IO/Socket/INET.pm:
Socket fixes; supernovus++ for discovering the issue and testing the fix.
kudo/nom: e3a2fd7 | jonathan++ | src/core/Iterable.pm:
Make (1..10).fmt(...) work again; masak++ for noting it.
cotto_work benabik: figuring out what to break first. suggestions welcome
requirement: nondecreasing happiness from Rakudo 21:15
benabik I'd suggest IMCC, but it seems pretty broken already. ;-)
cotto_work and by "Rakudo", I mean "whatever state allhlltest is in when you're ready to merge" 21:16
21:49 benabik joined 21:56 rfw joined
dalek kudo/nom: a5d0ca2 | jonathan++ | src/core/control.pm:
Fix handling of lack of candidate to defer to in nextsame/nextwith.
22:03
kudo/nom: ef8480f | jonathan++ | t/spectest.data:
Run S12-methods/lastcall.t.
kudo/nom: bb2a5ad | jonathan++ | src/Perl6/Metamodel/MultiMethodContainer.pm:
Remove a die in a place where we should just go ahead and generate a proto. Fixes compilation of S12-methods/multi.t, though it doesn't yet pass.
22:32 patspam joined 23:16 patspam joined 23:50 whiteknight joined