Parrot 2.5.0 release time is on 15th at 12:00 UTC | parrot.org | Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | GSOC Students: trac.parrot.org/parrot/wiki/GSoCersStartHere | Priorities: fix io_ops mess in corevm/coretest, review and update documentation before release
Set by moderator on 9 June 2010.
davidfetter rAmen! 00:03
pmichaud also, fwiw, using white space at the beginning of a rule (in a protoregex) effectively disables longest token matching 00:07
i.e.,
rule pir_instruction:sym<get_keyed> { <ident> <pir_key> }
rule pir_instruction:sym<op_assign> { <ident> <op_params> }
in both cases, the longest token is zero because of the whitespace between { and <ident>
(that's a Perl6-ism)
darbelo Bleargh. 00:08
pmichaud to have ltm play any sort of role, it would need to be {<ident>
but even in the case of these two rules, the longest token will be simply the length of the initial <ident> prior to any whitespace
(i.e., they'll be considered to be of equal weight, at which point the "whichever one is declared first" tiebreaker would apply, according to Perl 6) 00:09
jnthn pmichaud: Doesn't STD do something "interesting" in that regard?
pmichaud jnthn: nafaik 00:10
jnthn is sure sorear++ and TimToady++ discussed rule and LTM recently
pmichaud (depending on which regard you're referring to :)
I'm just going by what S05 says, and by the (few) rule protoregexes in STD.pm6
they may have changed that recently, but I haven't seen it changed in the spec yet.
00:13 pmichaud_ joined
pmichaud_ looks like feather died again :-| 00:13
davidfetter /requiescat in pace/ 00:16
00:17 dalek joined 00:18 dukeleto joined, pmichaud_ joined
sorear is summoned? 00:37
00:37 davidfetter joined
sorear pmichaud_: Hi! Do you have any tips for running a bootstrapped parser? 00:37
STD has been giving me issues when I try to make coordinated changes (like fixing a compiler bug while removing the workaround) 00:38
cotto_work pmichaud_: making one of the names longer seems to do the trick. Thanks! 00:46
now to figure out which one should be longer... 00:49
bacek, it looks like PIRATE hackery may recommence 00:55
bacek_at_work cotto_work, hooray!
dalek rrot: r47550 | darbelo++ | branches/gsoc_nfg/src/string/encoding/nfg.c:
Make sure we calculate the right output by passing in the right input.
00:58 abqar joined
cotto_work which name should be the longer one? Renaming op_assign to _op_assign makes the example code always parse correctly, but I don't know if that change would have negative consequences for some other bit of PIRATE. 00:59
whiteknight I'm coming in to the conversation late, but it seems .... wrong that parsing isn't determinate 01:00
bacek_at_work cotto_work, op_assign should be longest I think.
cotto_work afaict it's because the protoregex variants are stored in a hash and which one is tried first (when their names are the same length) depends on the internal hash order. 01:01
Have you considered TODOing tests so it's easier to see if any actual progress has been made?
01:02 kid51 joined
cotto_work kid51, why does a pure-docs set of changes need a branch? 01:20
kid51 We have people who promised to review my work. 01:27
It probably won't go in until after next release.
01:28 rurban joined
dalek rrot: r47551 | jkeenan++ | branches/cfunctionsdocs:
Create branch to complete work on documentation of C functions in Parrot source code.
01:29
rrot: r47552 | jkeenan++ | branches/gsoc_past_optimization/runtime/parrot/library/PAST/Transformer/Dynamic.pir:
[codingstd] Correct POD formatting error.
kid51 trunk: make testf: darwin/ppc: t/op/exit.t TODO passed: 6 01:34
01:38 plobsing joined
cotto_work bacek_at_work, now that PIRATE is unblocked, what needs hacking? 01:45
dalek rrot: r47553 | jkeenan++ | branches/cfunctionsdocs/config/gen/platform/generic/dl.c:
[codingstd] Provide documentation for C functions.
01:46
bacek_at_work cotto_work, finishing grammar. heredocs will be little bit painful... 01:56
dalek rrot: r47554 | jkeenan++ | branches/cfunctionsdocs (3 files):
[codingstd] Provide documentation for C functions.
02:02
02:08 pmichaud joined, dalek joined 02:13 dukeleto joined
sorear msg pmichaud Do you have any tips for running a bootstrapped parser? 02:25
purl Message for pmichaud stored.
sorear msg pmichaud STD has been giving me issues when I try to make coordinated changes (like fixing a compiler bug while removing the workaround)
purl Message for pmichaud stored.
02:33 jrtayloriv joined, theory joined
dalek rrot: r47555 | jkeenan++ | branches/cfunctionsdocs (10 files):
[codingstd] Provide documentation for C functions.
02:34
02:45 TonyC joined 02:49 nopaste joined 02:50 szabgabx_ joined 02:54 janus joined 03:03 jrtayloriv joined 03:09 snarkyboojum joined 03:19 theory joined 03:56 dalek joined 03:57 PerlJam joined 03:58 dukeleto joined 03:59 Util joined 04:04 pmichaud joined 04:09 rurban_ joined 04:23 snarkyboojum joined 05:03 LoganLK joined 05:20 jrtayloriv joined
cotto bacek_at_work, wrt PIRATE, are you not planning on having a separate preprocessing step for heredocs 05:31
bacek_at_work cotto, I didn't think about it (yet) 05:32
probably pmichaud can bring some ideas how they can be implemented in NQP. 05:33
cotto ok 05:36
It sounds a little tricky but having the ability to embed arbitrary chunks of PIR in a grammar will help. 05:37
and I imagine that stealing from Rakudo is always an option
bacek_at_work It's not "stealing"! It's "learn-by-example" process :) 05:46
cotto Yeah. copying by example. 05:52
06:04 he_ joined 06:13 aukjan joined, TiMBuS joined 06:16 uniejo joined
dalek kudo: 51dfa74 | patrickas++ | src/core/MAIN.pm:
Correct handling for case sub MAIN('add' , ) {}
06:18
kudo: 9c0f9ec | (Patrick Abi Salloum)++ | src/core/MAIN.pm:
Much better sub dispatching thanks to jnthn++
kudo: d1aeb84 | moritz++ | src/core/MAIN.pm:
USAGE is not polluting the user's space anymore. If the user defined a sub USAGE
bacek_at_work STD.pm? 06:19
purl STD.pm is svn.pugscode.org/pugs/src/perl6/STD.pm
cotto I bet there's something useful there.
bacek_at_work purl, no, STD.pm is svn.pugscode.org/pugs/src/perl6/STD.pm6
purl okay, bacek_at_work.
cotto beat me to it
bacek_at_work it's slightly overcomplicated for stealing heredocs for PIR... 06:22
moritz it uses language braids to parse quotes... 06:23
cotto braids? 06:27
moritz similar-but-not-quite-the-same languages 06:39
06:41 jrtayloriv joined
dalek kudo: d59da85 | (Solomon Foster)++ | src/core/Real.pm:
Change Real.Str to use Num instead of Bridge internally. (Results should be
07:38
purl dalek: that doesn't look right
08:04 szabgabx joined 08:12 szabgabx joined 08:13 sorear joined 08:17 szabgabx_ joined 08:27 eternaleye_ joined 08:50 snarkyboojum joined 08:56 clinton joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#34315), fulltest) at r47555 - Ubuntu 10.04 amd64 (gcc) 11:03
dalek rrot: r47556 | khairul++ | branches/gsoc_instrument/t/dynpmc/instrument.t:
Fixed t/dynpmc/instrument.t to reflect changes.
11:37
11:48 whiteknight joined
whiteknight good morning, #parrot 11:53
Is there going to be a Rakudo #30 release this month, in additon to Rakudo*? 11:56
moritz yes
whiteknight okay, when's that coming out? Todayish?
moritz on Thursday after the parrot release 11:57
as always
whiteknight oh shit, I have my calendar mixed up
I'm a week early
moritz has a deja-vu :-) 11:58
whiteknight I'm extremely bad with dates
moritz pities whiteknight's dates 11:59
whiteknight that's why I married a woman who owns a calendar
moritz good choice :-)
12:00 bluescreen joined 12:06 lucian joined 12:09 rurban_ joined 12:12 tetragon joined
moritz whiteknight: my girlfriend sent me a reminder today that we have an appoint with friends on Saturday... so you're not the only one :-) 12:14
12:24 khairul joined
whiteknight just discovered that an old password in an old database (still in some use) has the password "1LuvK1tt3ns" 12:47
13:24 Myhrlin joined, atrodo joined 13:27 lucian_ joined 13:29 aukjan joined 14:01 dolmen joined 14:25 plobsing joined 14:49 bubaflub joined 15:05 dolmen joined
dalek rrot: r47557 | NotFound++ | trunk/t/pmc/float.t:
tests for Float VTABLE_absolute
15:13
15:23 theory joined 15:26 ash_ joined
ash_ when you have an include in a pmc it seems to think thats some target it needs to build, is there anyway around that? 15:27
Coke ash:
ash_: ?
ash_ like, in my nci pmc i have #include <ffi.h> and it tries to build "include/ffi.h" as a C file, which doesn't exist 15:29
dalek rrot: r47558 | NotFound++ | trunk/t/pmc/stringbuilder.t:
add a StringBuilder test to reach full coverage
15:30
ash_ as a work around i just am doing # include <ffi.h> (the spaces seem to make it not auto detect the included file)
NotFound ash_: judging by some current usages, adding whitespace between # and include works.
Or maybe is because they are inside a #if block. 15:31
ash_ is that the right place to put the #include? in the pmc?
NotFound Ah, you already figured. 15:32
ash_: if the header is used only in the pmc, sure it is. 15:33
ash_ kk, just checking 15:34
i got the lldb tool to compile for me finally, its a library for debugging llvm code, i think it might come in handy soon, when i start the llvm based part of my gsoc 15:36
Coke what is trying to build include/ffi.H ? 15:45
ash_ the build system 15:52
purl i heard the build system was broken
ash_ perl Configure.pl finds it and says its one of the C targets, so its trying to build it with gcc 15:53
NotFound Confirmed, it does the same for me. 15:57
cotto_work aloha 16:06
Coke wthf. 16:07
config/*/pmc.pm // get_includes should probably not be grabbing includes with <>, but only "" 16:09
16:11 patspam joined
NotFound Coke: fine for me, but maybe we should document in our coding standard that < > must never be used with parrot's own headers. 16:12
particle <> should be for system headers only 16:13
yes, make that clear in pdd07 if it isn't
NotFound particle: yeah, but the C and C++ standards doesn't forbid other usages. 16:14
Coke it's treated that way elsewhere (like in checkdepend) 16:15
particle yes, true, but it's good policy
imo
NotFound particle: yes, but is our policy, we must explictly tell it.
particle and that's why i say it should be made clear in the pdd 16:16
NotFound Fully agree.
particle we're in violent agreement
16:23 jan joined 16:25 jrtayloriv joined 16:31 khairul joined 16:38 ash_ joined 16:48 PerlJam joined 16:55 szabgabx joined 17:00 zibri joined
Coke heee. used isparade.jp/, and parrotvm showed up as the parrot head on a dog body. 17:12
17:28 aukjan joined
cotto_work ocw.mit.edu/courses/electrical-engi...fall-2005/ 17:35
17:37 sorear joined
whiteknight cotto_work: would be much cooler if they were using Parrot 17:49
much much cooler
cotto_work of course 17:52
atrodo everything is cooler with parrot
particle parrot would be much cooler if it were used in a class
pmichaud good afternoon, #parrot 17:53
whiteknight hello pmichaud
how are you doing today? 17:55
cotto_work do we have someone playing with build.opensuse.org/ ?
pmichaud doing okay -- working on a deep Rakudo/Perl 6 issue (lists and iterators) 17:59
I'll be glad when that's done :) 18:00
my irssi session is a bit messed up -- need restart 18:01
brb
18:01 pmichaud joined 18:02 LoganLK joined 18:08 ruoso joined 18:16 szabgabx joined 18:49 aukjan joined 18:53 ash_ joined
ash_ how does VTABLE_set_pointer_keyed_str 19:32
work? 19:33
purl Work - the curse of the drinking class. (Oscar Wilde)
sorear All the "pointer" stuff is completely PMC dependant 19:38
Old-school parrot philosophy is to allow PMCs to use meaningless vtable entries for private setup hooks 19:39
the _pointer_ stuff in particular is almost always used this way, since PIR code doesn't manipulate C pointers 19:40
thankfully modern Parrot seems to be moving more towards named methods
(though stealing vtable functions is faster, and still gets used for some very critical stuff)
19:49 aukjan joined 19:56 pjcj joined, atrodo joined
ash_ in the core op dlfunc they do "VTABLE_set_pointer_keyed_str(interp, $1, $4, F2DPTR(p));" and I am trying to find how to access p 19:58
whiteknight sorear: excellent analysis. the pointer-related vtables are a big pain in my ass 20:03
sorear look in NCI.pmc
20:04 Psyche^ joined
sorear NCI overloads set_pointer_keyed_str to mean "set up the signature string and rawpointer" 20:04
also, F2DPTR, seriously?
I thought this was supposed to be ANSI C
whiteknight that's definitely "old school Parrot"
nowadays, that would never fly
cotto_work We've got layers. 20:05
whiteknight unlike an onion, our moldy, dirty layers are deep on the inside 20:06
bubaflub so you're saying we're rotten from the core?
whiteknight but we've applied a nice spit shine to the outside of this particular cow patty
:) 20:07
Chandon When should the PObj_on_free_list flag be set? 20:08
whiteknight Chandon: if used at all, it's set internally by the GC
probably set during GC sweep, cleared during PMC allocation
ash_ hmm
so should i go update dlfunc?
since thats whats builds the nci.pmc i am working with
Chandon whiteknight: I've got a nice segfault if I exit during a timer callback that involves throwing an exception when cleaning up the task. 20:10
whiteknight oi 20:11
Chandon Everything works great if I comment out the exception being thrown, but I'm trying to understand what's going on. This is at scheduler.c:412.
20:11 tcurtis joined
ash_ whats the alternative to using VTABLE_set_pointer_keyed_str ? 20:12
20:12 rurban joined
whiteknight Chando: definitely shouldn't segfault, that's for sure 20:16
Chandon: if you can capture a backtrace, I would love to see it (or, example code to reproduce it locally) 20:17
nopaste "Chandon" at 192.168.1.3 pasted "Exit from timer; segfault" (32 lines) at nopaste.snit.ch/21195 20:18
Chandon whiteknight: that code should trigger it 20:19
whiteknight okay, I'll give it a shot when I get home
...and on that note, I'm off. I'll be back this evening. 20:22
20:32 aukjan joined
ash_ what are the alternatives to vtables? 20:43
japhb Tene, thbbbbpt. 20:48
Tene japhb: so I heard.
20:51 davidfetter joined
dalek rrot: r47559 | Chandon++ | branches/gsoc_threads (2 files):
[gsoc threads] Segfault work-around.
20:57
21:08 masak joined
masak where can I find a list of the recognized charsets and encodings in Parrot? 21:39
ash_ how do you access the attributes given to the invoke operation on a pmc
err, not attributes, parameters
sorear with great difficulty 21:44
though it's easier since pcc_hackathon went in
see blizkost src/pmc/p5sv.pmc for a demonstration 21:45
assuming you want to pass and return arbitrary lists
if you don't, it's a bit easier
ash_ i want to pass arbitrary lists, i'll looke at blizkost's pmc. 21:46
masak hm. the first reference at the bottom of docs.parrot.org/parrot/devel/html/d...s.pod.html is a dead link. :/ 21:47
too bad, it sounded interesting.
ash_ sorear: is that in jnthn's github account? 21:49
github repo for blizkost i mean
tcurtis masak: plan9.bell-labs.com/sys/doc/utf.html or plan9.bell-labs.com/sys/doc/utf.ps or plan9.bell-labs.com/sys/doc/utf.pdf is probably the same thing. 21:50
masak ok, good.
nice! thanks! 21:51
ash_ plan9 sounded like an interesting os design, never used it though 21:52
sorear ash_: yes 21:53
ash_ did you mean p6invocation.pmc? p6sv.pmc is rather blank
and it doesn't have an invoke
ah, i see, thanks, that will help 21:56
sorear I actually meant p5scalar 22:00
but p5invocation uses the same logic
mostly factored into bkmarshal.c
ash_ being dynamic in C is rough 22:17
22:24 szabgabx_ joined
ash_ whats the difference between VTABLE and METHOD ? 22:50
sorear VTABLE allows you to override one of a couple hundred slots with fixed name and signature 22:51
METHOD lets you use a custom name and signature
ash_ is it better to use vtables? or methods? 22:55
(a method with a slurpy would make my life easier)
Tene ash_: vtables (mostly) correspond to ops 22:58
If the behavior you want to add isn't a replacement of some existing behavior, use a method. It makes everyone's life easier, can be easily and consistently called from HLLs, etc. 22:59
I'm really not fond of stuffing arbitrary behavior into unrelated vtables.
ash_ well, the invoke opcode does make sense to keep 23:00
Tene Yes, there are definitely cases where you do want to set vtables.
23:02 tetragon joined 23:20 patspam joined 23:25 kid51 joined 23:49 ash__ joined 23:52 davidfetter joined