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.
cotto plobsing, I like that branch. 00:03
"Parrot_hash_pointer" is a bit confusing because I expect "Parrot_hash" to be the prefix, but I like where you're going. 00:04
plobsing cotto: I suspect we could get a little performance boost from using that hash function for our pointer hashes as well 00:06
pointers have very low entropy in the low bits, so small hashes of pointers are degenerate
that hash function moves some of the existing entropy into lower bits
however, I have yet to test this theory rigorously 00:07
cotto I was disappointed when I saw that we hashed pointers the same way we hash INTVALs
"bitsex"? 00:08
plobsing, is that intentional? 00:09
00:09 whiteknight joined
plobsing like bytesex (or endianness) 00:09
but for bits
cotto I'd never heard that term before.
whiteknight ....bytesex? 00:10
cotto I was hoping for a hilarious typo.
whiteknight came into this conversation at the worst possible time
plobsing www.catb.org/jargon/html/B/byte-sex.html
I am *not* making this up 00:11
dalek sella/query_streams: 353cd78 | Whiteknight++ | / (2 files):
Tests for FileResult
sella/query_streams: 16f8ad3 | Whiteknight++ | / (31 files):
Merge harness_test branch. Fix conflicts
sella/query_streams: e036fbf | Whiteknight++ | s (3 files):
Add 'winxed_debug' arg to Distutils wrapper to build winxed files with --debug
sella/query_streams: 03e6688 | Whiteknight++ | src/harness/ (2 files):
Fix up TestFile.PIR
whiteknight hot byte-on-byte action
dalek sella/query_streams: 5d3a228 | Whiteknight++ | s (2 files):
stream methods create a new Stream
sella/query_streams: a35fc2e | Whiteknight++ | / (32 files):
Merge branch 'master' into query_streams
sella/query_streams: 616613c | Whiteknight++ | src/ (4 files):
Fix a problem missed in Harness. Update Harness to use the new way of doing streams
sella/query_streams: 354a55f | Whiteknight++ | s (3 files):
Add in a Stream.Iterator type, for easy looping
sella/query_streams: 79e4389 | Whiteknight++ | src/query/St (2 files):
Implement Stream.flatten. A few small cleanups
sella/query_streams: de8c10a | Whiteknight++ | src/query/St (2 files):
Stream.append
sella/query_streams: 1845f56 | Whiteknight++ | src/query/Stream.winxed:
Stream.count and Stream.any
sella/query_streams: 259d134 | Whiteknight++ | src/query/Stage.winxed:
Cut out some whitespace
sella/query_streams: d2a6a90 | Whiteknight++ | src/query/ (7 files):
Cleanup namespace directives
sella/query_streams: 5bfd251 | Whiteknight++ | src/query/Stage.winxed:
+docs and some error checking
plobsing bitsex is for those naughty individuals who do bitmangling
<insert naughty bits joke here>
cotto: I'm glad someone is actually reviewing my commits 00:13
cotto It's a dirty job...
whiteknight I notice that we don't have a 'does "iterable"' role anywhere. There's no way to tell whether you can get_iter a PMC without trying to do it and catching the exception 00:17
plobsing find_vtable?
or somesuch?
cotto whiteknight, you seem to be implying that having an 'iterable' role would provide some kind of assurance. 00:18
whiteknight I don't know what the solution is, I'm just pointing out the problem
cotto Which sounds like a great idea. Someone should implement that.
whiteknight and it's clearly not a big problem
soh_cah_toa whiteknight: how's whiteknight/kill_threads looking? when will it be ready for merge? 00:21
cotto zomg
I think the maintainer of git just sent us a pull request 00:22
whiteknight soh_cah_toa: still pending that last test failure. Plus, nine is working on some threading-related stuff and I want to talk to him about it
plobsing cotto: quick! print it and hang it on your wall. 00:23
cotto "Humbly suggesting improvements to [git] workflow document" 00:24
soh_cah_toa whiteknight: alright, b/c i'm making this saturday the freeze on master but if it still needs a little work, i'll make an exception just for you ;)
cotto time to give that a look-see
soh_cah_toa yeah, i just saw that too. i like it :)
cotto dukeleto, ping 00:26
soh_cah_toa i don't understand why he put all the octothorpes though, it looks weird when gh renders it :\\ 00:27
whiteknight Let's go under the assumption that the kill_threads won't make it into this release 00:29
soh_cah_toa alright
cotto soh_cah_toa, it's not meant to merge, just to suggest changes
plobsing soh_cah_toa: because those aren't intended to actually be a part of the document
cotto er, be mergede
plobsing s/mergede/merged/ # ftfy 00:30
soh_cah_toa i see
00:32 preflex_ joined
dalek kudo/nom: a834325 | jnthn++ | src/binder/multidispatch. (2 files):
Refactor in preparation for adding multi-dispatch cache; sketch it structures related to it.
00:44
kudo/nom: 9961471 | jnthn++ | src/binder/multidispatch.c:
Add calls to add/find things in the multi-dispatch cache.
00:45
kudo/nom: 2257709 | jnthn++ | src/binder/multidispatch. (2 files):
Get multi-dispatch cache sketched out. It almost works, apart from on the occasions it doesn't, which are proving hard to track down. Thus, it's disabled for now.
sella/query_streams: 403590c | Whiteknight++ | src/query/St (2 files):
Add comments for Stream. Re-do .tap()
sella/query_streams: 4695cae | Whiteknight++ | src/query/ (3 files):
Move the qsort implementation into the Query namespace since it's used in more places than just the Provider and subclasses
00:53 jsut_ joined
plobsing cotto: what's the status of all_hll_test? is it expected to always be passing yet? 01:07
cotto plobsing, it depends on the status of the various hlls. I usually manually run against master to get a baseline. 01:10
plobsing ok.
it would be nice if there were a way to keep the tool up to date with the last "known good" rev
cotto it's a weakness in the current design of the tools
s/tools/tool/
plobsing or if projects cooperated and provided us with a branch/tag that pointed to such a thing 01:11
or, you know, did all their development on branches and maintained the default branch in a good state 01:12
cotto pshaw
I'm not sure what the best way to do that is. The simplest would be to run everything against master in addition to whatever branch is being used, but that has a glaring deficiency. 01:13
iwbni nqp's tests passed though 01:15
01:17 woosley joined
plobsing rakudo master based on nqp master hangs spectest 01:18
and since I have a small patch to nqp (which I've logically based on the most recent common code, aka master), my fix is untestable on rakuod 01:19
cotto plobsing, in rakudoland, nom is the new master 01:20
plobsing yeah, whatever the thing is
if they're free to come up with whimsical and complicated naming schemes, I feel free to ignore those 01:21
cotto wfm. It's the default branch, so there's no extra thought required.
dalek rrot/mls/sub-profiler: 79886bf | jkeenan++ | config/gen/makefiles/root.in:
Rework dependencies so t/src/checkdepends.t passes.
02:36
cotto kid51++ 02:45
dalek rrot: 8c69a0b | jkeenan++ | config/gen/makefiles/root.in:
Introduce a Makefile variable for frequently used directory include/pmc/. Correct inaccurate inline comment about 'library_tests'.
02:54
cotto msg kid51 in github.com/parrot/parrot/commit/8c69a0bb18 your commit message mentions a comment fix, but I don't see one. 03:06
aloha OK. I'll deliver the message.
cotto seen kid51 03:08
aloha kid51 was last seen in #parrot 8 days 14 hours ago saying "afk".
cotto seems to be the case
Coke Do folks want a play by play on the Muddle thing, or shall I just come back when it's usable? 03:20
(feather.perl6.nl:2653/parrot/1 comes from the one run kid51 gave me.) 03:21
cotto I like seeing how it's progressing. 03:25
Coke I am missing coldfusion. pretty sad. 03:26
putting it in dalek would probably help. Setting up a cronnish job so feather gets updated every so often. 03:28
dalek? 03:33
aloha, dalek?
aloha Coke: dalek is run by sorear.
Coke aloha, dalek owner?
aloha Coke: I give up.
Coke ... lagged. whee.
msg sorear can you add github/coke/muddle to the list of tracked projects for dalek? danke. 03:34
aloha OK. I'll deliver the message.
Coke ... and why do I keep typing dalke?
feather now setup to update the checkout every 10m.
sorear Coke: you can do that yourself now 03:41
check out dalek-push.txt in the mu repo 03:42
Coke aloha, mu?
aloha Coke: Search me, bub.
Coke got it, danke.
biiiiig repo. 03:43
sorear++ #awesome 03:46
dalek ddle: 5a5b6b2 | Coke++ | / (2 files):
add basic tag information to smoke report.
03:49
03:51 jkitazawa joined
cotto Coke, you can also add a post-receive url to github 03:51
Coke cotto: that's what I just did.
yay, updates happening on feather. 03:55
04:21 benabik joined
dalek ddle: 69413f4 | Coke++ | templates/projects/report.html.ep:
Break test data out by file.
04:46
ddle: 30842f6 | Coke++ | / (4 files):
make smoke report resemble regen'd TAP

  * no decode() in sqlite3, so add table for directive lookup
  * fix bug on diagnostic import (retain newlines)
Coke feather.perl6.nl:2653/parrot/1 now looks a lot like it did before we carved it up and spit it out. 04:47
benabik muddle? 04:50
Coke aloha, muddle is a TAP server like smolder, written in smolder, at github.com/coke/muddle 04:51
aloha Coke: Okay.
benabik Coke++ 04:53
wait, written in smolder?
Coke aloha, no, muddle is a TAP server like smolder, written in mojo/sqlite, at github.com/coke/muddle 04:54
aloha Coke: Okay.
Coke thinko.
sorear how awesome is muddle?
sorear wonders if ey should use it for eir projects somehow
benabik I think it's awesomely awesome, even if it doesn't work. Not being smolder makes it pretty amazing.
Coke right now? it's kind of lame. it will become more awesome when data can be uploaded into it via not-the-command-line 04:55
ey?'
benabik Make a thin "accepts TAP file" script that dumps them somewhere a cron job can batch process them.
Coke ah.
right now I've got something that will take the .tar.gz files that we send to smolder. 04:56
figure change one thing at a time.
aloha: muddle is also feather.perl6.nl:2653/
aloha Coke: Okay.
Coke sorear: certainly that would be nice, using it for something other than parrot. ;)
sorear Coke: I'd like a better understanding of what its functional role is 04:58
Coke short term, replace parrot's use of smolder - accept tap archives, import them into a DB, then report on them per project (or per test file) (or per ... compiler, or version, or...) easy click through to find the diagnostics on fail. RSS feeds to track smoke. 04:59
smolder does all that, but it's got maintenance issues. 05:00
(generates an insane amount of inodes, disk space creep, have to restart it daily)
right now it just imports those tap.tar.gz files on the command line and gives you the ugly report you see. 05:02
(compare to smolder.parrot.org) 05:03
sorear Coke: I'm not familiar with what the purpose of smolder is. Is it like CPANTS? 05:04
Coke (looking at CPANTS) no, that looks like it's not about tracking pass/fail on the test suites. 05:15
more like... a continuous integration server that just handles test results, not running the tests. 05:17
(except that it relies on others to do the continual part.)
for example: imagine being able to say "are any clients failing spectests in perl6?" "what do they have in common?" "how long has the failure been occuring?" 05:18
sorear yeah
that's what I was thinking of when I said CPANTS, but apparently CPANTS is not that thing *oops* 05:19
Coke we also have test run times, and can do something with that.
dalek ddle: 4e8ee53 | Coke++ | / (2 files):
highlight failed tests in smoke report
05:20
sorear CPAN has a function where users can upload TAP reports and it displays in a nice PASS (712) FAIL (34) bar on the module info page, and you can then look at the data in more detail to figure out "oops, my module doesn't work on SunOS 5 with -Duse64bitint"
Coke yes, that! 05:21
zzzz. 05:26
dalek rrot: ab9f012 | soh_cah_toa++ | config/gen/makefiles/root.in:
Edited help message for 'reconfig' Makefile target to reflect the fact that it runs 'realclean', not 'clean'.
05:27
07:07 mj41 joined 07:40 schmooster joined 08:02 lucian_ joined 08:03 SHODAN joined 08:23 jsut joined 08:36 woosley joined 08:50 SHODAN joined
dalek p: 9e5f3e8 | moritz++ | src/HLL/Compiler.pm:
-e "" and -e "0" should no go to the REPL
09:03
kudo/nom: b4fcd22 | jnthn++ | src/Perl6/ (2 files):
Unify loadlibs handling for BEGIN-time dynamic compilation and the normal compilation path.
09:08
kudo/nom: 977dd63 | jnthn++ | src/Perl6/SymbolTable.pm:
Send dynamic compilation through the Perl6::Compiler pipeline, rather than calling PAST::Compiler directly, so we don't lose the various .includes. Fixes compilation issue reported by snarkyboojum++.
09:22
09:22 jsut_ joined 10:02 mj41 joined 10:31 contingencyplan joined 11:10 mj41 joined 11:13 woosley joined 11:40 Psyche^ joined 11:46 arnsholt joined 12:29 whiteknight joined
whiteknight good morning, #parrot 12:31
mls morning whiteknight!
whiteknight soh_cah_toa++ # being on top of the release
hello mls. How are you today?
mls good, good. cleaning up the subprofiler.
whiteknight awesome. I wanted to look at it last night but ran out of time 12:32
dalek rrot: 7b2a02a | (Michael Schroeder)++ | src/platform/linux/encoding.c:
add missing newline to error message
rrot: 008059c | (Michael Schroeder)++ | compilers/imcc/imc (2 files):
add SET_LINENUMBER to the SUB lexer action

This is a workaround for the <*>^{WS}* rule not matching lines that don't start with a white space. Without it, the getparam opcode will have the line number information of the last line of the previous sub.
rrot/mls/sub-profiler: 09d8fa0 | (Michael Schroeder)++ | / (2 files):
use parrot types
rrot/mls/sub-profiler: 7b2a02a | (Michael Schroeder)++ | src/platform/linux/encoding.c:
add missing newline to error message
rrot/mls/sub-profiler: 008059c | (Michael Schroeder)++ | compilers/imcc/imc (2 files):
add SET_LINENUMBER to the SUB lexer action

This is a workaround for the <*>^{WS}* rule not matching lines that don't start with a white space. Without it, the getparam opcode will have the line number information of the last line of the previous sub.
rrot/mls/sub-profiler: 2d45606 | (Michael Schroeder)++ | / (5 files):
Merge branch 'master' into mls/sub-profiler

Conflicts:
  \tconfig/gen/makefiles/root.in
mls I still don't know what to do with rdtsc. Any ideas?
whiteknight I think we use rdtsc when we have it, and fall back to the more expensive hires timer functions when we don't 12:34
so, figure out what systems have rdtsc, use macros, and call it then
We can try to add a probe to Configure.pl, if it's more complicated than using it on just a few systems
mls we need to check both for gcc and the system architecture
(for now) 12:35
I'll ask our compiler folks for help 12:37
whiteknight okay. I think we are going to want the config probe and a config variable. We can generate a PARROT_HAS_RDTSC macro
dalek kudo/nom: 6629ed7 | jnthn++ | src/Perl6/Actions.pm:
A while ago we had a way to check if a routine was obviously never going to use return, and thus didn't need a return handler (a worthwhile saving). It accidentally got broken, and its analysis was a little simplistic. This makes it work again; it probably also doubles up as our 'should we be able to inline this routine' check.
12:47
12:50 redicaps joined 13:02 JimmyZ joined
dalek rrot: c8a8ac1 | Whiteknight++ | src/dynpmc/os.pmc:
Add some basic usage information to os.pmc, to show how to load it and instantiate it from user code. IRC chatter honza++ for the suggestion
13:02
13:03 bluescreen joined 13:07 mj41 joined
dalek nxed: 6da33c5 | NotFound++ | winxedst1.winxed:
tiny optimization in NewExpr
13:16
nxed: 4b4fb48 | NotFound++ | winxedst1.winxed:
fix null value initializers in hash literals
nxed: 103152b | NotFound++ | winxedst1.winxed:
refactor value collectors into a helper class
rrot/mls/sub-profiler: 22ad8af | (Michael Schroeder)++ | src/runcore/subprof.c:
only use rdtsc on intel/amd with gcc
13:45
whiteknight mls++ 13:54
mls (it doesn't use a compile time probe, but should be enough for now) 13:56
about getting rid of the global "struct spdata": where should I put it? 13:57
whiteknight mls: Add it to the interp. include/parrot/interpreter.h for now. Make it a void* runloop_data field, so other runloops can make use of it
we can massage that later
mls so not in interp->iglobals 13:58
whiteknight nah, not yet.
mls ok, will do.
whiteknight like I said, we can review it and play with it later. For now, this is the best way to get you moving forward 13:59
mls Oh, I need a custom GC mark function, too.
whiteknight that structure has GCable data? 14:00
mls No, I need to mark all subs.
all subs I've collected data for.
whiteknight That should already happen. Subs are marked by the packfiles, and packfiles are currently immortal
they won't always be, so just make a note somewhere 14:01
mls Doesn't seem to happen for all subs, I get segfaults if I remove the mark function
whiteknight ok
src/gc/mark_sweep.c has routines for marking the root set, like the interp
mls currently I've added a mark_profile_data() to mark_interp(), which is ugly 14:03
OTOH I've also patched Parrot_api_destroy_interpreter to call dump_profile_data() 14:04
whiteknight :) 14:05
We can create a new API call, Parrot_api_dump_profile_data() 14:06
Or, we could add a method to the ParrotInterpreter PMC to do the dumping
and call that from the frontend
mls Yes, but it seems a bit strange to me that you turn on profiling by selecting a runcore, but need to do the dump with a function call 14:07
whiteknight is there a runcore destroy function? 14:08
mls yes.
whiteknight you can switch runcores at runtime with an opcode. It's not common but it is possible. So we do need a way to dump that data even if the runcore isn't still the profiling core when the program exits 14:09
that is, we don't want some inconsiderate 3rd party library doing something impolite and making our data disappear 14:10
mls True. I somehow missed Parrot_runcore_destroy()
I can do the dump in it. 14:11
whiteknight okay, that seems cleaner to me
dalek kudo/nom: 10d9ee6 | moritz++ | src/core/terms.pm:
fix PERL6LIB separator
14:18
14:21 alester joined
whiteknight msg soh_cah_toa I did a bunch of test runs but it doesn't look like they got uploaded to smolder. All tests pass on master/HEAD on linux x86_64 with GCC, Clang, and G++, with and without --optimize. I'll try ICC tonight,but I don't expect any problems 14:22
aloha OK. I'll deliver the message.
15:07 dmalcolm joined
dalek rrot/mls/sub-profiler: f5358a8 | (Michael Schroeder)++ | / (4 files):
move global subprofdata into the runcore data for now. dump profile data in the runcore's destroy callback.
15:26
mls ok, enough cleanup for today 15:27
We still need to find a better way for marking the subs.
(Too bad that there's no runcore->mark callback) 15:28
afk -> weekend 15:29
15:30 redicaps joined
bubaflub msg mls you should add yourself to CREDITS 15:42
aloha OK. I'll deliver the message.
15:47 mj41 joined 15:52 rurban joined
rurban random_lib.pir should be removed. There is also no test which should have detected long ago that it does not parse. I had that error last year. 15:54
whiteknight rurban: I've never even heard of random_lib.pir. Where is it? 15:58
rurban runtime/parrot/library/random_lib.pir
I'll send a git patch 15:59
whiteknight thanks for pointing that out! rurban++
oh, awesome. Even better
rurban In my cygwin test scripts I actually compile all pir's in runtime/parrot/library to install the pbc's. That's why I find out
whiteknight brb, food
rurban: how does Parrot look on cygwin? Without you, it doesn't get nearly as much love or attention 16:00
rurban 3.6.0 is doing fine
I just recompile now because we have a new gcc-4.5.3
trac is too slow for me today. can I just send the patch to parrot-dev? 16:01
Oh I got 3 new fails with the new compiler: t/pmc/socket.t hangs, t/pmc/threads.t 13, t/src/checkdepend.t: 16:04
Oh I got 3 new fails with the new compiler: t/pmc/socket.t hangs, t/pmc/threads.t 13, t/src/checkdepend.t: 16:05
Failed tests: 1-55, 57-160
16:06 rurban left 16:18 schmooster joined 16:25 particle joined
cotto_work ~~ 16:30
16:54 plobsing joined
dalek kudo/nom: 946deda | jnthn++ | src/binder/multidispatch.c:
Be sure to decontainerize values before trying to use the type cache ID in the mutli-dispatch, otherwise we just get the type cache ID of Scalar (d'oh!). Enable multi-dispatch cache, which brings some performance gains.
17:03
kudo/nom: 6f801ee | jnthn++ | src/core/Regex.pm:
Implement Regex.Bool (TimToady++ for noticing it was missing).
17:42
18:12 Tene joined 18:15 contingencyplan joined
dalek sella/gh-pages: ac3c390 | Whiteknight++ | libraries/ (13 files):
quick cleanups for the docs of several libraries
18:16
sella/gh-pages: 71f2f95 | Whiteknight++ | _layouts/rosella.html:
Add Template and Utilities to the page-top toc
18:18
sella: 6427174 | Whiteknight++ | / (12 files):
Move the utilities dir from unstable to src. Not all of these are perfect, but they're good enough for most use
18:25
sella/gh-pages: a38c82e | Whiteknight++ | / (8 files):
Move the winxed documentation to a subtly different template
18:33
18:33 Drossel joined
sella/gh-pages: 4846ee7 | Whiteknight++ | index.md:
add all stable libraries to the list on the main page
18:41
kudo/nom: e1e0913 | moritz++ | t/spectest.data:
track test file rename
19:02
19:22 mj41 joined 19:37 mj41 joined 20:13 Kulag joined
dalek kudo/nom: c8ebb4b | jnthn++ | src/ (5 files):
Previously, a sub foo($x = 1) { ... } would generate a thunk that returned the 1. However, it's a literal, so it was kinda silly to do that. Now in these cases we just hand back the value. Good, since these show up in places like MapIter.REIFY.
20:54
21:00 alester joined 21:40 soh_cah_toa joined 21:53 jsut joined
dalek kudo/nom: 0a93f6e | jnthn++ | src/core/ (6 files):
Improve object creation performance in a few hot-path places (e.g. iterators).
22:14
kudo/nom: 58809bb | jnthn++ | src/ (2 files):
Don't re-check types at bind time that the multi-dispatcher already decided were fine.
22:31 whiteknight joined
dukeleto secure.wikimedia.org/wikipedia/en/...oogle_Dart 22:39
cotto_work dukeleto: someone's going to be talking about the vm for that at the VMIL workshop. 22:42
I don't like the way Google's going about developing the language, but I'm happy to steal ideas from any suitable source. 22:43
22:43 rfw joined
dukeleto cotto_work: yep. they are attempting to make js irrelevant so they don't need to agree with mozilla people about specs, it seems 22:51
cotto_work: that lars dude designed the vm for Self, if wikipedia tells the truth 22:52
cotto_work dukeleto: yeah. I'm going to try to figure out a way to steal his brain for a bit. 22:53
dukeleto: www.cs.iastate.edu/~design/vmil/201...01-bak.txt 22:55
It's interesting to think about how I'd summarize M0 in as few words as possible for someone 10x smarter and more experienced than me. 23:00
dukeleto cotto_work: indeed. can people just attend that workshop without presenting? 23:06
cotto_work dukeleto: seems to be the case, assuming you pay the registration fee 23:08
splashcon.org/2011/attending/registering (VMIL workshop is on Monday)
23:16 japhb joined 23:42 rfw joined