Parrot 1.2.0 released | parrot.org/ | 304 RTs left | Weekly Priority: Apply Patches, Fix Bugs, Close Tickets
Set by moderator on 25 May 2009.
00:02 bacek_ joined
darbelo Just checked. Same here. 00:03
wayland, both the installed binary and the one generated on the parrot build-dir give me the correct answer. 00:04
wayland Ok, thanks. It must be something to do with me making it into an RPM then 00:05
00:07 Whiteknight joined
wayland rpm -qf /usr/bin/svn 00:08
subversion-1.5.4-3.i386
(svn software used)
00:21 tetragon_ joined
dalek cnum-dynpmcs: r62 | darbelo++ | trunk/src/pmc/decnum.pmc:
MULTI is no more! It has ceased to be! It's expired and gone to meet it's maker!
00:26
Whiteknight darbelo++ 00:34
darbelo Heh. I (re)watched 'And now for something completely different' today. I just couldn't help myself. 00:36
Whiteknight haha, that's a great one 00:46
Not as good as Grail or Life of Brian, but fun nonetheless
00:53 tetragon joined 00:55 tetragon_ joined 01:01 tetragon joined 01:08 patspam joined 01:36 kid51 joined
kid51 wayland ping 01:46
01:47 cotto joined
wayland Present :) 01:59
(or should I say, kid51 pong :) )
01:59 Maddingue joined, mj41_ joined, dalek joined, amoc joined
kid51 wayland Read your queries about revision number on scrollback. 01:59
Feature, not bug.
wayland oh, ok
kid51 If you look at lib/Parrot/Revision.pm, you'll see that the SVN revision requires running 'svn' code.
Implies you're in your sandbox, not building from a tarball or package.
wayland ok, great 02:00
Rakudo needs modification then :)
kid51 If the file DEVELOPING exists in your top-level directory, you're considered to be working directly from source, are a Parrot developer, etc. Hence, svn rev number is of prime importance.
but if you're building from a tarball, we presume you're doing something with the Parrot executable, not trying to hack on Parrot itself. 02:01
Over past few years, we've had a tremendous amount of back-and-forth on this. (Too much, IMHO.)
wayland No, it's all good. It just means that Rakudo is bad :) 02:02
kid51 At one time, we had code in lib/Parrot/Revision.pm to enable SVK users to determine the revision number.
But none of our SVK users were willing to help maintain that code.
So we yanked it.
Then Linus proclaimed that everyone who didn't use git was an asshole. 02:03
So people clamored for some git code there.
And eventually some crept in. Though, once again, it's not verified by any tests.
Net result: The only thing we guarantee once you're building from a tarball, RPM, etc., is the Parrot version number, not the svn revision number. 02:04
If our Smolder server were working, you'd be able to observe this. 02:05
Smolder reports that come from testing tarballs display SVN rev 0.
IIRC
cf: thenceforward.net/parrot/coverage/c...on-pm.html 02:06
Also, note how tests 017 018 and 061 in t/configure/*.t are designed to work differently depending on whether you're DEVELOPING or not. 02:10
But, better still, don't worry too much about this.
wayland Exactly what I was hoping to do :o) 02:11
02:11 Andy joined
wayland Anyway, I'm being called for lunch. Thanks for your help :) 02:12
02:27 tetragon_ joined 02:42 janus joined 02:48 Austin_Hastings joined
Infinoid kid51: I recently re-added the git code, when rakudo started refusing to build without it 03:05
I'm not sure what the best way to test that is. If we could somehow fake the output of "git log" and verify the number it returns, that should be sufficient 03:06
Andy hey infinvoid
Infinoid hey Andy 03:07
Andy hey Infinoid have you tried the splint lately?
Infinoid I have been unable to get spint installed on my machine, and been too busy with moving and applying for work
it is on my list for this week, though.
Andy what is yr machine?
Infinoid gentoo/amd64
Andy and yu can't get a package installed? 03:08
Infinoid The problem is that gentoo wants to install from the source tarball, but the tarball it downloads doesn't match the MD5sum it has stored, so it thinks it's been hacked and refuses to build it.
Andy huh
Infinoid (gentoo tends to be one of the first to detect hacked tarballs on sourceforge and the like, because of this feature. But it also has some false positives, and I don't think splint is high enough profile to be a target for malware) 03:09
Andy Did you try the tarball yrself? 03:12
Infinoid: Here's what the output is looking like these days pastebin.com/m4404e416 03:13
How do I set a default value for a variable? 03:20
in a makefile?
Austin_Hastings A_default = foo
A = $(A_default$(A))$(A) 03:21
dalek cnum-dynpmcs: r63 | darbelo++ | trunk/src/pmc/decnum.pmc:
Add floor_divide VTABLEs.
03:27
Austin_Hastings Andy: Alternatively, you could use the 'ifeq' test to set the value if it was not set. This is probably clearer, and Parrot seems to be using gnumake exclusively. 03:30
Andy Austin_Hastings: Not true. I have to be very careful not to break the Windows make 03:31
I don't get the A_default thing
Austin_Hastings Okay, consider this:
A_default=foo
Andy What I want is
Austin_Hastings That's just a setting for the default.
Andy SPLINT_TARGETS="blah blah blah" unless defined $SPLINT_TARGETS 03:32
Austin_Hastings Now $(A_default) is going to expand to "foo" always.
Andy ok
Austin_Hastings But $(A_defaultXXX) has no value.
Andy one hopes
Austin_Hastings So if I set B = XXX, I can use A_default$(B) to get A_defaultXXX
But if I set B = (nothing), I get A_default$(B) = A_default 03:33
So when I expand A_default$(B) I either get A_defaultXXX or I get A_default 03:34
By setting A = $(A_default$(B)) I either get A = $(A_defaultXXX) (= nothing) or I get A = $(A_default) (= foo) 03:35
Actually, if you're using an unspecified make I should make that C =
C = $(A_default$(B))
So now C = (nothing) or C = foo 03:36
But I don't want C = (nothing) if the user provides a value for C. I want C = uservalue
The user value in this case is B, which is either (nothing) or XXX. 03:37
So I set C = $(B)
And I get C = XXX
But when $(B) is nothing, I want "foo"
So I set C = $(B)$(A_default$(B))
darbelo Andy, is the definition (or lack thereof) known to Configure.pl? In that case you can use #IF(condition) on the Makefile.in template. Less likely to break brain-dead makes :)
Andy darbelo: Dunno. It's not really a big deal. 03:38
Austin_Hastings Which gets me (nothing) + foo when B = nothing, or XXX+ (nothing) when B = XXX
Andy Austin_Hastings: So it basically is just relying on the default variable not existing as expanded 03:39
Austin_Hastings The only problem is that with older makes, you can't redefine a variable in terms of itself.
Andy: Yes.
So you can't say A = $(A), etc. That's a gnu-ism.
So try something like _A = $(A) instead. 03:40
_A = $(A)$(A_default($A))
Then use _A elsewhere.
_SPLINT_TARGETS = $(SPLINT_TARGETS)$(SPLINT_TARGETS_default$(SPLINT_TARGETS)) 03:41
darbelo I used the #IF() thing for the decnum-dynpmcs Makefile to determine the endianess of the platform. 03:42
line 16 of code.google.com/p/decnum-dynpmcs/so...akefile.in
Austin_Hastings But won't you do okay with just assigning the value in the file, and letting the user override it on the command line? Or are you looking at including another makefile? 03:43
Andy Will it get overridden if I specify on the command line?
I didn't think it would 03:44
Austin_Hastings Yeah.
nopaste.com/p/awlxSMQtfb 03:46
That's what you're looking for, no? 03:47
...? 03:54
purl Yada yada yada hasn't been implemented yet! (unless you run bleadperl)
Andy so no need for default! :-) 04:07
Austin_Hastings No need to put in code, if all you want to do is provide the user with a default. 04:08
If you want to provide a default to another piece of code, see above.
But the user "wins" whenever a command-line value is specified.
Andy how is the default determined? 04:11
What "make" makes?
with no args?
Austin_Hastings First target
purl i heard First target was probably Unicode::Collate
04:11 tetragon joined
Andy how can i tell what that is 04:12
Austin_Hastings sed? 04:13
purl sed is not a programming language its an editor. or perl jr
Andy no, I mean looking at the fil
It looks like it's "all"
Will my enviornment variables override what's in the makefile, too? 04:14
I want to provide a $TMP if the user's env doesn't have one.
Austin_Hastings It's all.
sed -ne '/^[a-z_A-Z0-9]*[ ]*:[^=]/{p;q}' ~/parrot/Makefile
You can specify -e to force environment variables to override makefile vars. 04:15
But check to see if the current behavior isn't what you want already.
In most makes, setting TMP=/tmp will override whatever setting comes from the environment. 04:18
This is one of those cases where you might have to use the default-value hack.
darbelo cotto, ping 04:20
cotto darbelo, pong 04:29
darbelo I'm looking at the cmp VTABLE, and I was wondering if I should implement a total ordering or not. Any thoughts? 04:31
cotto Why wouldn't you? Does the library not support that directly? 04:33
darbelo It supports both "IEEE total ordering" and "Comparing NaNs is silly" behaviors. 04:34
Total ordering is "ļæ½NaN < ļæ½sNaN < ļæ½Infinity < ļæ½finites < ļæ½0 < +0 < +finites < +Infinity < +sNaN < +NaN" 04:35
cotto Hmm. 04:36
darbelo The other is "WTF? NaN? Bugger all, I dunno." Which I can turn into an exception easily enough.
cotto My instinct says that if NaNs are popping up, you've got bigger issues than ordering. 04:37
so fail noisily
but feel free to go the other way if you can imagine the more common use cases where that happens benefiting from an ordering that includes the NaNs. 04:39
cotto wonders if that last statement could have been better phrased
Infinoid overflows his stack and segfaults 04:41
darbelo I'll make the VTABLE throw an exception and provide a METHOD for people who want full IEEE 754 ordering.
cotto sounds like a good way to go 04:42
cotto makes careful notes on Infinoid's vulnerability 04:43
darbelo I think "NaN? WTF?" is the default response we'll get from people. Might as well make it the software's. :) 04:44
cotto: Think the overflow is exploitable? 04:45
cotto I'll have to run some more tests
Infinoid, A hundred prisoners are each locked in a room with three pirates, one of whom will walk the plank in the morning. Each prisoner has 10 bottles of wine, one of which has been poisoned; and each pirate has 12 coins, one of which is counterfeit and weighs either more or less than a genuine coin. In the room is a single switch, which the prisoner may either leave as it is, or flip. Before being led into the rooms, the prisoners are 04:47
all made to wear either a red hat or a blue hat; they can see all the other prisoners' hats, but not their own. Meanwhile, a six-digit prime number of monkeys multiply until their digits reverse, then all have to get across a river using a canoe that can hold at most two monkeys at a time. But half the monkeys always lie and the other half always tell the truth. Given that the Nth prisoner knows that one of the monkeys doesn't know that
a pirate doesn't know the product of two numbers between 1 and 100 without knowing that the N+1th prisoner has flipped the switch in his room or not after having determined which bottle of wine was poisoned and what colour his hat is, what is the solution to this puzzle? send cotto a check for one million dollars
cotto waits expectantly
davidfetter cotto, 42 04:48
cotto is not entirely disappointed 04:51
05:09 davidfetter joined 05:30 flh joined 05:49 jisom joined
dalek rrot: r39172 | petdance++ | trunk/src/call/pcc.c:
consting
05:49
purl consting is a nightmare :)
rrot: r39173 | petdance++ | trunk (2 files):
shimmed an interp and reran the headerizer
05:53
rrot: r39174 | petdance++ | trunk/config/gen/makefiles/root.in:
The splint-andy target is now just 'splint', vs. 'splint-all' which works on the entire tree
05:56
cotto no, consting is <reply> 05:58
purl okay, cotto.
06:02 skids joined 06:11 iblechbot joined 06:19 patspam1 joined 06:21 he__ joined
dalek rrot: r39175 | petdance++ | trunk/lib/Parrot/Pmc2c/PMCEmitter.pm:
adding splint macros to the generated C code from PMCs
06:23
06:28 flh joined 06:43 skids joined
dalek rrot: r39176 | Util++ | trunk/tools/dev/pbc_to_exe.pir:
[pbc_to_exe] TT #688 - performance fixed for GCC.
06:56
moritz Util++ # very good improvement 07:04
08:10 Ademan joined 08:15 cotto joined 08:16 cotto joined 08:17 cotto joined 08:21 Debolaz joined 08:29 Maghnus_ joined
dalek kudo: 870bf3b | moritz++ | t/spectest.data:
fix typo in t/spectest.data, moritz--
08:34
08:39 cotto joined 08:43 rg joined 08:44 amoc joined 08:46 cotto joined 08:51 iblechbot joined 09:01 donaldh joined 09:05 skids joined 09:37 gaz joined
moritz parrot r39132 broke rakudo's t/spec/S12-methods/indirect_notation.t 09:52
09:56 rdice joined
bacek moritz: I know... 09:58
But it 30% faster with this caching.
wayland I know the fastest VM. 10:02
exit(0)
:)
10:04 HG` joined
jonathan bacek: Mighta been good if you'd posted to the list first saying it broke something and getting analysis on why...one test fail can point to something important but rarely exercised. 10:13
bacek jonathan: I did post. But I'm failing to understand why it's failing. 10:14
10:27 mikehh joined 10:33 HG` joined
wayland Where does socket.pasm come from? 10:45
bacek wayland: generated by Configure.pl from C enum
wayland ok
Because it's not in the MANIFEST anywhere
should it be?
(or at least, not the manifest in SVN) 10:46
bacek no, it shouldn't (iiuc) 10:47
wayland Oh, wait, it's in MANIFEST.configure.generated or something
bacek indeed
wayland (I'm trying to make a Rakudo RPM build on a Parrot RPM, and the Parrot RPM doesn't package that file, so I'm trying to fix that) 10:49
Should make install-dev be putting socket.pasm somewhere? 10:50
bacek wayland: no idea. Ask kid51 and allison 10:51
wayland ok, will do
However, I've got this feeling that maybe kid51 doesn't know :). Well, we'll see :) 10:52
11:03 riffraff joined
bacek jonathan: around? 11:07
msg jonathan Looks like sometimes Object.increment and Int.succ can fall in infinite love^W^W mutual recursive calls 11:10
purl Message for jonathan stored.
11:12 masak joined
jonathan bacek: Is that related to the method dispatch bug? 11:13
bacek jonathan: no. I just found it during investigations... 11:14
jonathan Ah, OK.
bacek Object.increment calls self.succ. Int.succ calls "inc $P0", which is VTABLE_increment and calls Object.increment 11:15
11:17 he__ joined
bacek jonathan: where is hll_global Callable defined? (in rakudo) 11:17
jonathan src/classes/Callable.pir I expect 11:18
bacek it's "Callable[::T]" 11:20
and there is no "set_hll_global" in it 11:21
jonathan bacek: Oh
11:21 donaldh joined
jonathan Yes, it just sets up one factory and installs it as one of the parametric role variants. 11:21
There's various bits of code relating to that, I think see guts.pir's !create_parametric_role 11:22
bacek I'm digging guts.pir ATM trying to fix dispatch bug.. 11:23
jonathan There Be Dragons. :-) 11:24
moritz There Be Spectests
jonathan Indeed.
moritz aka anti-dragons
jonathan I've had them happily catching my accidental breakage of parametric roles a couple of times.
bacek Hooray. 11:25
moritz maybe we should call them "regression tests which coincide with the specs" ;-)
bacek P6Invocation cache conflicting with my cache
jonathan P6Invocation doesn't have a cache as such. 11:26
bacek jonathan: it is.
check VTABLE_invoke
jonathan bacek: It wraps the invocation, and acts iterator-ish. 11:27
bacek ouch...
jonathan That isn't going to change.
bacek no cookies for me
jonathan (As in, the need to do that.)
We can probably re-work the specifics somehow.
I'm curious how your PMCProxy caching causes issues though.
bacek I'm curious either :/ 11:28
jonathan They sound fairly orthogonal to me.
Is it something in the way the P6Invocation is instantiated?
bacek It's just call "root_new [...] 11:30
jonathan OK, but the notable part is that it passes something along to init with too. 11:31
You sure there's no issues there?
(that is, we'll be calling init_pmc not just init
)
bacek of cause no... I suspect every single line of code
jonathan everything is suspect!
11:32 burmas joined
moritz blames the whitespaces 11:32
jonathan moritz: It's not written in Python. :-P 11:33
bacek more like "brainfuck"...
jonathan (Though it amuses me that if it were, that would be a valid thing to blame. :-))
moritz actually in Perl 6 ws carries some semantics too 11:34
say(1, 2), 3 vs say (1, 2), 3
11:35 pfig joined
jonathan moritz: Yes, true. :-) 11:35
Of course, the Whitespace language wins. :-) 11:36
wayland are socket.pasm and sockets.pasm different? 11:43
11:46 contingencyplan joined
bacek jonathan: fine... Parrot's Undef clashed with Rakudo's Undef... 11:49
jonathan bacek: Oh, ouch. 11:50
bacek: And that was the only test it showed up in? D'oh.
bacek indeed...
purl indubitably
jonathan bacek++ # well found
I'm relieved it wasn't an issue with wrapping invocation.
bacek Looks like "new "Undef"; <register rakudo's Undef>; root_new "Undef"" produces wrong results.. 11:51
P6Invcations is fine. 11:52
hmm... But may be I was wrong (as usual) 11:53
11:58 szbalint joined
wayland bacek: Do you know if socket.pasm and sockets.pasm are supposed to be the same file? 12:09
bacek wayland: lemme check 12:10
12:12 Whiteknight joined
bacek wayland: socketS.pasm is outdated and should be removed. 12:16
wayland Well, it still exists in my build from SVN :) 12:17
Whereas socket.pasm doesn't get packaged
anyway, thanks for the info
bacek socket.pasm is autogenerated from includes.
May be there is a problem.
wayland++ # For TT#705 12:21
dalek TT #705 created by bacek++: [cage] runtime/parrot/include/sockets.pasm is outdated and shoud be ... 12:22
wayland I'll work on the packaging
(well, maybe I shouldn't volunteer. I'll work on it, but I may not solve it :) ) 12:27
dalek TT #706 created by mj41++: Out of mem (PASM, compreg, invokecc) 12:35
12:40 rg1 joined
Whiteknight urg, #706 looks like a doozie 12:42
bacek Whiteknight: special gift for you :)
dalek TT #705 closed by bacek++: [cage] runtime/parrot/include/sockets.pasm is outdated and shoud be ... 12:45
rrot: r39177 | bacek++ | trunk (5 files):
[cage] Remove obsoleted files. Closes TT#705

  - runtime/parrot/library/tcpstream.pir
12:47
12:57 gryphon joined
wayland bacek: Just quickly, do you know which script generates socket.pasm? 12:57
bacek wayland: Configure.pl 12:58
purl i guess Configure.pl is not a spammy domain name. it's not even registered.
Whiteknight purl forget Configure.pl 13:03
purl Whiteknight: I forgot configure.pl
wayland Hmm. I'm really trying to find where the runtime/* lines get written to MANIFEST.configure.generated 13:04
Because I want to add a [library] to the end of them
(it'll be one of the calls to append_configure_log, I think) 13:05
13:13 bkuhn joined
wayland Found it, don't worry :) 13:15
13:30 azawawi joined
azawawi hi 13:37
13:38 skids joined
Whiteknight hello 13:44
13:46 rakudohudson joined 13:54 patspam joined 14:06 azawawi left 14:08 Maghnus joined
dalek TT #476 reopened by doughera++: Binaries should not contain rpath 14:28
wayland Thanks for your help bacek. 'night all 14:36
15:03 Andy joined
dalek rrot: r39178 | NotFound++ | trunk/t/pmc/io.t:
[tests] delete todo'ed stringhandle test in io.t, there is already a stringhandle.t file
15:18
15:20 donaldh joined 15:27 Austin_Hastings joined
dalek TT #707 created by NotFound++: [RFC] StringHandle interface 15:31
Austin_Hastings moo 15:33
Why does dispatch hang on multi-subs ok(_,_) and ok(_,_,_)?
(dynamically loaded, in the [] namespace) 15:34
Infinoid Got a test case?
moritz that sounds like a bug to me 15:35
Austin_Hastings I'm sure it's my problem, because I modeled it on t/pmc/multispatch_44.pir 15:37
But it's irritating because I have no idea what's going on internally. :( 15:38
Here's a question: how does multi-dispatch interact with :optional params? 15:43
If I have a multi(_,_) sub, can I safely label the second param as optional? Is there some way to tell mmd that it can be 1-ary or 2-ary? 15:45
15:46 rhr joined
NotFound Austin_Hastings: Will not be cleaner to add a (_) multi? 15:47
Austin_Hastings I don't know. I'm coming at this from (_,?) 15:48
Of course, right now the optional param works and the multi doesn't, so that's a problem. 15:49
NotFound As Infinoid said: got a test case? 15:50
Austin_Hastings Nope. 15:54
Util join #parrotsketch 16:04
Util sighs
NotFound Thanks, I copy&paste it 16:05
moritz too 16:06
though I don't know if I'll be around
and if, I won't have a report
Infinoid finds himself asking, once again, "did I do anything for parrot this week?" 16:09
NotFound Ask Uncle Sam 16:10
Austin_Hastings #$P55 = iseq $P53, $P54
That's my test case - uncommenting it causes load_bytecode to (apparently) hang when loading a pir file. 16:11
Infinoid Running it with "parrot -t" will tell you what the classes of P53 and P54 were, which may help
Austin_Hastings Umm, since it's loading, not executing, do they even have classes? 16:12
Infinoid Are you saying it fails at parse-time rather than run-time?
NotFound load_bytecode can execute things
Infinoid ah, yes 16:13
Austin_Hastings Nope. I'm saying it appears to hang when I load_bytecode a .pir file.
NotFound Lots of things, in fact
Even more things if is a pir file X-)
Austin_Hastings Aha 16:17
Thanks, NotFound.
Infinoid so anyway, iseq calls VTABLE_is_equal, so knowing which class it is calling is crucial to figure out how that vtable is implemented for that data type
Austin_Hastings Trying to compile produces the culprit: The opcode 'iseq_p_p_p' (iseq<3>) was not found.
Infinoid Okay. Try assigning the result to an integer register, rather than a PMC register 16:18
NotFound Uh, that's another problem. Parsing problems when load_bytecode a pir are not catched.
Austin_Hastings Already there.
purl that was quick.
NotFound Well, almost any problem, in fact. 16:19
Austin_Hastings Plus, pir parsing problems produce poor performance. 16:20
Infinoid "failing to run" makes "poor performance" a bit of an understatement :)
16:20 flh joined
NotFound Hanging forever is very poor performance, certainly X-) 16:20
moritz writing a different PIR compiler would be a nice contribution ;-)
Austin_Hastings I wouldn't mind "failing to run"
It's "going to sleep for a long time and not responding" that gets me perplexed.
NotFound moritz: another one?
moritz NotFound: one that actually replaces IMCC 16:21
NotFound moritz: pirc is supposed to be that.
moritz NotFound: yes. And it does not.
NotFound: at least not right now, and I didn't see any work on it for quite some time 16:22
NotFound moritz: starting write another one that also deoesn't is not a goo solution.
Infinoid Austin_Hastings: It might just be that your pir's init code is doing something in a loop, and your commenting out the check just means the condition is never met and the loop keeps looping. I think parrot -t should help to determine that
moritz NotFound: I don't mind how its done, as long as it gets done, and the result is more maintainable than imcc.
NotFound We can write one in pir 16:23
Surely will be more maintainable than imcc and pirc
Austin_Hastings Infinoid: Nope. That *was* the check. I'm trying to implement ok(...)
NotFound pir/nqp/pct/whatever
Infinoid Austin_Hastings: Can you nopaste the full pir file? (Sorry if you've already done so, I must have missed it.) 16:24
purl, nopaste?
purl rumour has it nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
NotFound rafb.net/paste has been discontinued 16:26
Austin_Hastings nopaste.com/p/afPE8SM7Z 16:29
(Sorry, had to break it and fix it again.)
pmichaud good morning/afternoon #parrot 16:31
Austin_Hastings morning, pm
NotFound Can we tell purl to forget only a part?
moritz I think it supports s/// somehow
NotFound purl: do what I mean 16:32
purl wish i knew, notfound
moritz purl: nopaste =~ s/http:..rafb.net.paste//
purl That doesn't contain 'http:..rafb.net.paste'
moritz purl: nopaste =~ s{rafb.net/paste}{}
purl OK, moritz
moritz nopaste?
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl nopaste is probably at nopaste.snit.ch/ (ask TonyC for new channels) or or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
moritz purl: nopaste =~ s{or or}{or} 16:33
purl OK, moritz
moritz nopaste?
clunker3 pasta.test-smoke.org/ or paste.husk.org/ or nopaste.snit.ch:8001/ or rafb.net/paste or poundperl.pastebin.com/ or paste.scsys.co.uk/
purl it has been said that nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or poundperl.pastebin.com/ or paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
moritz afk
NotFound Now tell to clunker3, for extra bonus ;)
nopaste "mj41" at 147.229.5.176 pasted "Segmentatio fault on PGE compiling on new TapTinder client (i386-redhat-linux on vmware). ttcopy.ro.vutbr.cz:4000/buildstatus.../rp-trunk" (43 lines) at nopaste.snit.ch/16667
16:39 davidfetter joined
dalek kudo: 6953001 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 394 files, 11343 passing, 0 failing
16:39
Infinoid Austin_Hastings: Your code seems to work fine here 16:44
nopaste "Infinoid" at 75.31.91.80 pasted "A pir file which loads Austin_Hastings's pir file and uses it (successfully)" (9 lines) at nopaste.snit.ch/16668 16:45
"Infinoid" at 75.31.91.80 pasted "The output I get when I run the previous nopaste" (8 lines) at nopaste.snit.ch/16669 16:47
Austin_Hastings Works fine here, too. It was the assignment into a $P instead of $I that messed everything up. 16:50
Thank you for checking it.
Flush with that success, I believe I'll go eat lunch. Later, #parrot. 16:53
16:54 Austin_Hastings left 16:55 rdice left 17:07 Theory joined 17:08 acajou joined 17:09 acajou left
dalek TT #561 reopened by coke++: What are valid characteristics for 'inspect_str' vtable? 17:21
17:27 darbelo joined 17:30 rob joined 17:32 ruoso joined
dalek TT #708 created by Util++: Trac ticket report {8} (Active Tickets, Mine first) does not work as ... 17:48
TT #708 closed by Util++: Trac ticket report {8} (Active Tickets, Mine first) does not work as ... 18:05
18:10 whoppix joined
Whiteknight bacek: ping 18:12
purl msg bacek can you take a look at TT #68? I think one of your commits earlier today may have resolved it. 18:13
purl Message for bacek stored.
Infinoid I've gotta go now; I pre-posted my #ps report
Whiteknight Infinoid++
Util jonathan, and other Win32 testers: is there an known issue with PASM using `print` or `say` to output huge strings to the console? 18:14
I have a simple test case that prints a huge string and then prints a short string. Only the short string appears in the CMD session. Redirecting to a file causes all the output to show up correctly. Running the test on non-Win32 also causes all the output to show up correctly. 18:15
Whiteknight Util: How large is the "huge" string?
Util 1MB certainly. In playing with it, I got it to trigger at around 54000 bytes, but that might vary per revision. 18:16
Whiteknight hmm, that's weird
Util If this does not ring a bell for anyone, I will create a ticket.
Whiteknight I've certainly never heard about anything like that 18:17
I wonder if it's a Parrot problem or a Windows problem? Can you output huge strings like that from other programs?
NotFound Util: can you nopaste the test case? 18:18
18:19 chromatic joined 18:20 barney joined
Util NotFound: yes, working... 18:21
purl i guess working is a good approximation.
Util Whiteknight: Perl 5 works as expected printing 1MB to console: perl -e "$_ = 'abcdefgh' x (1024*1024/8); print;" 18:22
nopaste "Util" at 68.191.99.24 pasted "Win32 huge string PASM test case" (9 lines) at nopaste.snit.ch/16670 18:25
pmichaud #parrotsketch in 3 18:27
Util: does it fail just in printing the string or is the length also incorrect? 18:28
Whiteknight I can imagine that a huge string printed all at once would overflow the DOS text buffer 18:29
I wonder if the Perl executable breaks huge strings like that up into smaller chunks
Util pmichaud: length is correct 18:30
NotFound DOS? We are in 2009, aren't we?
Whiteknight the Win32 command prompt 18:31
Util My OS is Win2000, so... not completely, NotFound!
Whiteknight I call it DOS, because it's about as modern a tool, and just as robust
NotFound But the buffer lives in the Win32 console subsystem, not in cmd, command.com, or whateer 18:33
Whiteknight #ps
NotFound Util: he's still learning to sing 'Daisy, Daisy'? 18:34
Whiteknight What's the status of the other GSOC project? I haven't heard anything about it in a while 18:37
darbelo There was another GSoC project?
Whiteknight yeah, I thought there was
the LLVM one 18:38
moritz seen tewk
purl tewk was last seen on #parrot 6 days, 16 hours, 49 minutes and 47 seconds ago, saying: Infinoid: great, thanks, I don't want to butt in, you can run with it. If you need me to do anything let me know. [May 20 01:45:02 2009]
Util NotFound: heh. Win2K does all I need. All the newer OSes add is singing "Slowly, Slowly, Upgrade and give Me your Cash..."
NotFound Util: hey, I have win xp home ;) 18:39
WriteFile fails with the huge string 18:45
18:51 particle joined
Util NotFound: Aha! In src/io/win32.c, sub Parrot_io_write_win32 calls WriteFile(), and fails silently on error. It is marked with FIXME. 18:56
NotFound I still don't find what is the error.
chromatic Windows hates you and has a plan for your data. 18:57
dalek TT #709 created by whiteknight++: Pmc2c should generate mark and destroy VTABLES 18:58
NotFound Soemone has in memory what is error 8 in win32? 19:00
ERROR_NOT_ENOUGH_MEMORY 19:03
Whiteknight ah, so it is a buffer problem 19:04
dalek rrot: r39179 | whiteknight++ | trunk/DEPRECATED.pod:
[DEPRECATED] Add branch_cs opcode to the list, per TT #470
19:05
Util NotFound, Whiteknight: from MSDN: "The WriteFile function may fail with ERROR_INVALID_USER_BUFFER or ERROR_NOT_ENOUGH_MEMORY whenever there are too many outstanding asynchronous I/O requests." 19:08
Whiteknight Util, but you're only making one request, just a very large request 19:09
Util Whiteknight: Oh, right.
19:10 iblechbot joined, rdice joined 19:14 ZuLuuuuuu joined 19:20 donaldh joined 19:24 barney joined
Whiteknight Infinoid: I'm planning lots of work in PDD22-world too, we should collaborate 19:26
Infinoid Sounds good, please keep me in the loop and I'll do the same
Whiteknight I've definitely got a Select PMC in the works, although I was probably going to name it something like "Listener" or something 19:27
dalek rrot: r39180 | chromatic++ | trunk/src/pmc (2 files):
[PMC] Replaced some unnecessary calloc() calls with regular malloc() calls.
19:30
19:33 Theory joined
Infinoid pmichaud: PVMW? Parrot Very Much Works? 19:33
Whiteknight PVM Workshop
Infinoid ah, cool
Whiteknight it's the weekend before YAPC::NA
pmichaud PVWM is the Parrot Virtual Machine Workshop at YAPC::NA 2009
19:34 Theory joined
moderator Parrot 1.2.0 released | parrot.org/ | 304 RTs left | Weekly Priority: Profiling 19:35
19:38 whoppix joined
particle- no, PVMW is the Parrot Virtual Machine Workshop at YAPC::NA 2009 19:40
szbalint damn I really need a diffscript on topics
I never know what changed :Ɩ
:)
particle- guesses weekly priority
szbalint yeah
19:46 fperrad joined
Util szbalint: See irclog.perlgeek.de/parrot/2009-05-24#i_1170927 ; it was the previous topic update 19:52
szbalint: Oops! I mean irclog.perlgeek.de/parrot/2009-05-25#i_1171767 19:53
dalek a: 5b5682d | fperrad++ | t/io.t:
add a test of io.popen (mode write)
19:54
szbalint Util: yeah, I just scrolled back in my scrollback buffer of this screened irssi, but that's already too much effort for a simple problem like this :)
19:55 eternaleye joined
Util grep the auto-log that irssi saves (if you have it turned on) 19:55
NotFound Util: docs also suggest ERROR_NOT_ENOUGH_QUOTA, buy I don't think that may happan on console, or that can be solved by retrying.
szbalint /lastlog topic is faster 19:57
NotFound Util: have you opened a ticket? 20:01
Util szbalint: cool!
NotFound: Not yet. About 10 minutes, or have you found an existing ticket? 20:02
NotFound Util: No. I just want one to mention in my attempt of fox.
fix
Util Ticketing... 20:03
purl it has been said that ticketing is such a subjective application though.
Whiteknight purl forget ticketing 20:04
purl Whiteknight: I forgot ticketing
20:06 HG` joined 20:12 Austin_Hastings joined
jonathan Util: Don't remember a bug along those lines, or at least don't rmemeber seeing one. 20:13
Tene pmichaud: ping
NotFound I don't think there is a lot of people wishing to write hundred of thousands of charecter to console in one shot ;) 20:14
particle- $ yes 'parrot rocks!' 20:15
Util NotFound: ticket accomplished :)
Austin_Hastings Question for anyone more knowledgeable than me: Is it meaningful to say ":multi" with no args? If so, what does it mean? 20:16
dalek TT #710 created by Util++: IO - On Win32, huge strings printed by Parrot do not appear in the console ... 20:17
Util NotFound: Actually, this bug tripped me up badly while trying to write the MSVC part of the pbc_to_exe bugfix.
jonathan: thanks!
jonathan Austin_Hastings: You can legitimately have a multi-variant of arity 0. 20:22
Austin_Hastings: Taking Perl 6 syntax: multi foo() { }; multi foo($a) { }; # arity 0 vs arity 1 20:23
Austin_Hastings jonathan: So that would be :multi and not :multi(), or is either form okay?
jonathan I think :multi()
I've never seen/used :multi
Austin_Hastings Okay. Thanks!
I used it for the first time earlier today, with predictable results. :(
jonathan BTW, don't follow what Rakudo emits in terms of multis. 20:24
Austin_Hastings Okay. Why not?
jonathan Because it doesn't use :multi(T1,T2,T3) style syntax to declare the variants, but instead works off Perl 6 signature objects.
Austin_Hastings Hmm. So it works by just taking a single parameter, or is there some other hackery being done? 20:25
jonathan Other hackery.
20:25 japhb joined
jonathan We emit :multi() to get Parrot aware they are multis, but instead bless them into Perl6MultiSub, which is a subclass of Parrot's MultiSub. 20:26
dalek rrot: r39181 | NotFound++ | trunk/src/io/win32.c:
[IO] On Win32, retry failed write of big size in smallest chunks on some conditions, TT #710
Austin_Hastings Gotcha. I'll be sure and not do that. :)
jonathan And it calls .signature on the candidates etc.
Sure, just wanted to flag it up so you don't go look at Rakudo and come away thinking, "huh, wtf" :-)
Austin_Hastings Oh. Well, that happens a couple of times a day. 20:27
pmichaud Tene: pong
jonathan Couple is better than a few ;-)
Austin_Hastings :-/
20:28 japhb_ joined
Tene pmichaud: looks like the right place for a 'parrot' compiler would be runtime/parrot/languages/parrot/parrot.pir, do you agree? 20:33
That's where "load_lang 'parrot'" looks, at least.
pmichaud Tene: Sure. Although I somewhat expect the 'parrot' compiler to be loaded "for free" when loading PCT. 20:35
Tene OK. 20:36
21:12 particle1 joined
dalek rrot: r39182 | chromatic++ | trunk/config/gen/makefiles/root.in:
[config] Added Makefile dependencies on config.h for STRING encoding system;
21:13
rrot: r39183 | chromatic++ | trunk/src/pmc/retcontinuation.pmc:
[PMC] Replaced an unnecessary calloc() with a regular malloc().
rrot: r39184 | chromatic++ | trunk/src/pmc/sub.pmc:
[PMC] Removed vestigial and bit-rotted code.
rrot: r39185 | chromatic++ | trunk/src/pmc/object.pmc:
[OO] Reduced the amount of work required to get an attribute's index in the
21:31 bacek joined 21:43 Whiteknight joined
dalek cnum-dynpmcs: r64 | darbelo++ | trunk/src/pmc/decnum.pmc:
Implement cmp VTABLE.
22:03
22:09 dolmen joined
janus may i request a system install mode? having either /parrot in the prefix or adding it everywhere below prefix makes me patch like a monkey :/ 22:09
or i did miss a new button
darbelo janus: system install? what do you mean? 22:10
janus i want parrot installed like everything else
i don't want a versioned install path 22:11
maybe there is a switch or option i havent found yet... 22:12
but on my patch way through the configure scripts i didn't see any
(yet?)
NotFound janus: if you want parrot, parrot_config et al to be available in PATH, just change your PATH, or use --prefix=/usr for example
darbelo The default configuration puts parrot on /usr/local/. and the binaries are in /usr/local/bin/ like everything else. 22:13
dalek rrot: r39186 | chromatic++ | trunk/src/list.c:
[src] Tidied code; no functional changes.
NotFound darbelo: not everything else in this world, just gnu/autotools convention 22:14
janus hmmm, let me recheck. when i regenerated the packaging list i got massive of /parrot-1.2.0 showing up
*ouch* 22:15
--prefix is missing, i wonder that didn't hit me before
sorry for the (premature) noise and thanks for the fish ;)
darbelo You might have seen the shared libraries and headers. Those *do* go to versioned dirs. 22:17
And parrot is not the only one doing this: 22:18
$ ls -l `which python` 22:19
lrwxr-xr-x 1 root wheel 24 May 12 15:07 /usr/local/bin/python -> /usr/local/bin/python2.5
janus hmm
+lib/pkgconfig/parrot/1.2.0/parrot.pc
what?!
cotto chromatic++ for making Parrot nicer to look at 22:20
janus i wonder how that will work... pkg-config parrot/1.2.0/parrot.pc --libs? 22:22
previously in lib/pkgconfig/parrot.pc, which is the location everything else uses 22:23
darbelo NotFound: Actually OpenBSD convention: /usr/bin is reserved to utilities shipped with the base system. Packages/ports get thrown to /usr/local/bin 22:24
janus darbelo: who cares if he can tweak/change it? ;) 22:25
here's the complete packaging list diff: pastebin.com/m9d13fe0 22:27
(from 0.9.0.1 to 1.2.0) 22:28
22:30 skids joined
NotFound darbelo: well, there are more systems with the same conventions. The point is that is not universal posix or unix. 22:32
darbelo Oh. Sorry. When I said that parrot went into /usr/local "Same as everything else" I meant "Same as everything else on my system" which is what I thought janus was asking. 22:38
I'm pretty sure Windows doesn't install stuff into /usr/local :) 22:39
jonathan Huh? What's /usr/local? ;-) 22:41
Whiteknight Infinoid: ping 22:42
janus NotFound: it wasn't the missing --prefix 22:49
a mix of overriding VERSION_DIR via make flags and patched tools/dev/install_files.pl should get me back to the previous location; diff when it DWIM 22:52
pastebin.com/m3bc03d22 + VERSION_DIR="/parrot" 22:54
sigh, yes... i could have checked current svn first 22:58
seems my issue is already obsolete 22:59
23:20 donaldh joined 23:24 eternaleye joined
chromatic c'mon dalek.... 23:26
dalek rrot: r39187 | chromatic++ | trunk/docs/book/ch03_pir.pod:
[book] Edited second third of this chapter. I added some editorial comments
23:27
Infinoid Whiteknight: faint-pong 23:36
Whiteknight Infinoid: I want to get a branch going to start refactoring IO PMCs 23:37
Maybe we should put together a little task list first, so we don't step on each other's toes? 23:38
Infinoid Okay
I was meaning to put together a proposal tonight, but I can see about throwing a quick version of it up on the wiki 23:39
Whiteknight The big things on the agenda are (1) to refactor the PMCs to inherit common stuff, and (2) to change the IO API to not use PCCINVOKE method calls
and I think we can get those changes made by the end of the week
Infinoid Does that mean all API functions will be vtables? 23:40
Whiteknight well, either that or GET_ATTR/SET_ATTR kinds of calls
Infinoid is thinking about connect(), listen(), bind() for Socket, and reader() and writer() for Pipe
Whiteknight er, PARROT_IOHANDLE()
we break a little encapsulation for big performance gains 23:41
Infinoid Can you declare vtable functions in pir subclasses?
Infinoid doesn't care about MULTI, but he does want subclasses (eventually) 23:42
Whiteknight yeah, with the :vtable flag
Infinoid great, that will be fine then
Whiteknight the way to get PIR subclasses working is to have all ATTRs be inheritable, so STRING*, PMC*, INTVAL, and FLOATVAL only
if we can make that happen, inheritance will flow from it 23:43
Infinoid Sockaddr will be a bit weird in that regard, but it's not an IO subclass (just some data used by some of the Socket API)
Whiteknight Right, sockaddr probably won't be subclassable
Infinoid one subclass of Sockaddr for each socket address family, and set_string_native to parse the address from strings, will work fine
Whiteknight Right, but those subclasses can be defined in C, not PIR 23:44
Infinoid well, SockaddrInet, SockaddrInet6, SockaddrTipc, SockaddrIPX, SockaddrUnix, etc
yeah
Whiteknight trac.parrot.org/parrot/wiki/IOTasklist <--- The page we can use for planning
Infinoid ah, great. I was already halfway to creating a similar page with a capital L :)
so what's this you were saying about select() being part of the AIO work? 23:45
On win32, select() only works with sockets, not with files or terminals. That's been bugging me a lot 23:46
Whiteknight Infinoid: On Win32 I was thinking about using IO Completion Ports, which do similar stuff but work with all IO handle types 23:47
Infinoid Which is awesome. I wouldn't mind abstracting select() on top of that kind of system
though I suppose poll()'s API is a little closer 23:48
Whiteknight I've been planning an "IOScheduler" or "IOListener" type of PMC that would integrate with the scheduler
so we add handles to it that we want to monitor, and poll them every time the scheduler runs
Infinoid hmm, ok. the Select interface I was thinking of is basically identical to perl5's IO::Select, if you're familiar with that 23:49
Whiteknight Yeah, I am
Infinoid but as long as the functionality is there, I don't care what it looks like
Your implementation sounds like it would meet my needs very well
Whiteknight I've been sort of trying to avoid syntax that is so closely tied to Perl, but if there is a lot of pressure to not do that, I won't bother
Infinoid well, I guess the important part is to make it easy to use from PIR 23:50
Whiteknight right
How did Pipes get implemented, as a FileHandle or something separate? 23:51
Infinoid it's currently a FileHandle, which I intend to fix
Whiteknight okay, awesome
Infinoid There are two things we want to call Pipes, though. NotFound++'s nice work is to open shell commands as pipes, which is the implicit way 23:52
Whiteknight I've been thinking that it was an awkward fit to force them into the FileHandle PMC
Infinoid I also want the explicit IO::Pipe style, where you create a pair of Handles and then call methods to get the reader Handle and writer Handle
I want to convert the implicit stuff to use the Pipe object internally.
so it would create a Pipe, fork off and dup2() the writer to stdout and execute the command, and return the reader Handle 23:53
or whatever.
I've been moving all day, so I haven't had a chance to write any of this down yet
(let alone *do* any of it :)) 23:54
23:55 tetragon joined
Infinoid is it worth trying to mark the various Handle subclasses so they can does(seek) or does(connected) or whatever? (is it "does" or "has" or what? I'm not familiar with the notation.) 23:57
Other than some special cases like http client classes that support resumes and chunked encoding, FileHandles are pretty much the only thing that can seek(). But I'm not sure how hard it is to tell the rest of parrot about that (or whether it's worth it) 23:58
Whiteknight Using roles for that kind of stuff is an interesting idea 23:59
I don't really know what the current state of the code is in respect to roles