www.parrotcode.org | Last Release: 0.7.0 "Severe Macaw"
Set by moderator on 19 August 2008.
00:16 md3` joined 00:21 md3`` joined 00:55 tetragon joined 01:16 rurban__ joined 01:33 Whiteknight joined 02:11 bacek joined 02:20 Auzon joined 02:31 petdance joined 02:39 md3``` joined 02:44 md3``` left 03:08 kid51 joined
dalek r30499 | jkeenan++ | scriptconfigure: 03:14
: Delete two unnecessary test files: we're not going to permit step sequence
: numbers as values for --fatal-step.
diff: www.parrotvm.org/svn/parrot/revision?rev=30499
03:23 mriou joined
mriou hi, I've been looking at parrot recently and have a question about a specific functionality, I'm wondering if there is a way I could implement it 03:26
if someone could help that'd be great, I'm still trying to find my way around
I'd like to do some language-level AST rewriting, sort of an extension on macros 03:27
anybody? 03:30
purl anybody is there?
mriou heh, apparently quiet 03:31
03:38 cognominal_ joined 03:43 tetragon joined
particle mriou: if you build your language with the parrot compiler toolkit (pct), you can manipulate the ast quite easily 03:49
mriou particle: yeah I've seen that, it's quite nifty 03:52
particle it's parrot's killer app, imo
mriou but I'm looking for language level constructs, meaning that the tools would have to know about previous language definitions
particle once you have a parse tree, you have a tree 03:53
manipulate at will
mriou right but it's several layers above the interpreter
say that in that language one defines something like: macro(`a + `b, add(a,b)) 03:54
add being a prefefined function
particle ok
03:54 Theory joined
mriou next 2+3 should get rewritten add(2,3) 03:54
but the initial definition being language level, it has to go to the parser 03:55
and then it's out of the ast hands
particle macro() can be implemented such that it adds a step to the compile chain
mriou and what would this step do? 03:56
particle it can look for <digit> infix:<+> <digit> and emit add(<digit>, <digit>)
...but in tree form 03:57
so it'll be PAST::Op('add', $digit1, $digit2) or whatever
mriou understood but how does this layer know about the previous macro definition?
would it have access to the interpreter? 03:58
particle yes
i see
'macro(...)' can be defined such that it's invoked immediately after it's compiled
mriou exact
particle :immediate in pir notation
then it can modify the interpreter 03:59
i think this will work today 04:00
mriou you could even define a macro like macro(`a = `b, if (isList(a)) produce(concat(a,b)) else produce(a+b))
particle however, it may require a BEGIN{} semantics if it has side effects
mriou which means that when applying the macro you need to have access to predefined functions
yeah probably
(would have side effects) 04:01
particle well then, it may have to wait for a while as we don't have that in place yet in pct
it is coming, though, just not yet
mriou which part exactly? access to the interpreter from upper layers?
particle the top priorities for pct are longest token matching and protoregexes
are you familiar with perl 5's BEGIN{} blocks? 04:02
mriou a bit
but if fail to see how it would it help 04:03
particle my $x; print $x; BEGIN { $x = 2 }; # prints '2'
the begin block there has a side effect
something outside the block is modified
mriou right, like a closure 04:04
particle right
pct doesn't handle this yet
mriou ah ok, got it
particle it can be made to work, but you'd have to implement it yourself
mriou I missed the connection between the BEGIN and what PCT didn't support yet
particle ...or you could wait until it's built in to pct
mriou implementing it myself meaning? no direct use of PCT? 04:05
particle correct, for that part. but you could use pct for other things. 04:06
mriou ok I see
particle if you don't need that functionality today, you can start your language implementation now and wait for it 04:07
mriou would you have any pointer on how to add a step to the compile chain?
some existing code that would do that?
particle sure, i have a blog post about it...
mriou nice :)
that's on parrotblog? 04:09
particle use.perl.org/~particle/journal/35343 04:10
mriou perfect, thanks a lot for the help particle, much appreciated 04:15
particle you're welcome.
time for me to watch a little olympics coverage and have another beer
&
mriou heh! a nice fresh beer
maybe I'll get one too now ;) 04:16
bacek Ahhh!!! Just watched pmichaud's lightning talk on yapc::eu. ROTFL 04:41
pmichaud++
05:00 tetragon joined
Tene purl: seen whiteknight? 05:04
purl whiteknight was last seen on #parrot 1 days, 6 hours, 4 minutes and 20 seconds ago, saying: I could use that to help with a parrot book I'm writing [Aug 22 22:59:58 2008]
05:29 Psyche^ joined 05:51 rurban joined 06:08 tetragon joined 06:17 Zaba joined 06:51 Zaba_ joined 06:58 rurban joined
dalek r30500 | allison++ | pdd27mmd: 07:09
: [pdd27mmd] Updating the manifest with new files.
diff: www.parrotvm.org/svn/parrot/revision?rev=30500
07:33 tetragon joined
dalek r30501 | fperrad++ | trunk: 07:33
: [Lua]
: - table.concat aligned with Lua 5.1.4 (refactor)
diff: www.parrotvm.org/svn/parrot/revision?rev=30501
08:17 barney joined 08:18 tetragon joined
barney is improvising a lightening talk at FrOSCon 08:20
08:21 iblechbot joined
dalek bernhard.schmalhofer@gmx.de | Pipp: 08:22
link: www.perlfoundation.org/parrot/index.cgi?pipp
rurban barney: can you look at the pipp parts of my code.google.com/p/cygwin-rurban/sou...lang.patch patch 08:31
barney rurban: I'll look at it tomorrow, after the conference 08:32
rurban ok, load_bytecode is still absolute and cannot be used with installable. as shown in use.perl.org/~rurban/journal/37260
08:41 Zaba joined
dalek r30502 | moritz++ | trunk: 08:42
: [rakudo] add S29-hash/delete.t to spectest_regression
diff: www.parrotvm.org/svn/parrot/revision?rev=30502
09:08 jason joined 09:12 jason joined, Whiteknight joined 09:16 rurban_ joined
moritz uhm, match variables seem to be fundamentally b0rked in rakudo 09:24
09:43 bacek joined 09:44 mmcleric joined
bacek good localtime() 09:44
moritz hi bacek, long time no see
bacek moritz: quite busy with $dayjob... 09:45
moritz: #57936 ;) 09:46
bacek reading backlogs. 09:47
mmcleric: hello Slava ;)
moritz bacek: does this offer any benefit over simple integers, except having a StrPos object? 09:48
I mean, can you access different Unicode levels or something?
bacek moritz: no, afaik
moritz: There is not specification for StrPos at all.
It just mentioned in Str.index and Str.rindex 09:49
moritz bacek: I guess it's an object that is tied to a string position, and you can get the index in bytes, codepoints, graphs etc
09:49 Zaba joined
moritz which is why I see no point in implementing it yet, because its benefit isn't yet available (since we don't have mulitple Unicode levels atm - everything is done in codepoints) 09:52
bacek moritz: I agree in general. This implementations is just basement for proper one (and adds 1 passing test ;) 09:55
moritz we should ask pmichaud if I should apply it ( pmichaud: #57936 ) 09:57
bacek moritz: (question about ops). Best place to check existed ops is 'src/ops/*.ops'
moritz bacek: thanks
bacek and there is no 'rindex' op in str.ops ;) 09:58
moritz aye :(
and "november" could put it to good use 09:59
bacek moritz: It should be reasonably easy to implement .
only one question: is it belongs to Parrot or Rakudo. 10:01
moritz I'm not parrot-savy enough to decide that 10:03
maybe ask on the list
(I'd vote for parrot, since it might be useful for other languages as well)
bacek moritz: there almost everything ready for rindex in Parrot. It just not implemented. 10:08
moritz: is there any tests for rindex?
moritz spec/S29-str/rindex.t on the Perl 6 side 10:09
dalek r30503 | moritz++ | trunk: 10:12
: [rakudo] allow access to $/, $!, $_ in while loops, closes RT #58306
diff: www.parrotvm.org/svn/parrot/revision?rev=30503
r30504 | allison++ | cygwin070patches: 10:18
: Creating branch for testing Reini Urban's Cygwin patches.
diff: www.parrotvm.org/svn/parrot/revision?rev=30504
10:18 tetragon joined
rurban okay, I saw it. 10:40
bacek purl: parrotbug? 10:57
purl hmmm... parrotbug is mailto:parrotbug@parrotcode.org or svn.perl.org/parrot/trunk/docs/submissions.pod or see also "rakudobug"
bacek moritz: around? 11:01
moritz: #58308 and #58310. 11:03
11:14 kj joined
dalek r30505 | julianalbo++ | trunk: 11:19
: some refactoring of debugger parsing functions
diff: www.parrotvm.org/svn/parrot/revision?rev=30505
r30506 | smash++ | pdd27mmd: 11:26
: [branches(pdd27mmd]
: * convert VTABLE with MMD_ blocks to MULTI definitions in src/pmc/ (still missing two specific cases)
: * everything builds ok but expect a lot of tests failures until the new dispatch is in place
diff: www.parrotvm.org/svn/parrot/revision?rev=30506
rurban Allison? 11:30
purl rumour has it Allison is Allison Randal <mailto:allison@perl.org>
11:31 megamic joined
rurban seen Allison 11:31
purl Allison was last seen on #parrot 4 days, 15 hours, 27 minutes and 1 seconds ago, saying: tewk: looks suspiciously like a dylib compiled for the wrong architecture [Aug 19 20:04:27 2008]
rurban seen chromatic
purl chromatic was last seen on #parrot 11 days, 11 hours, 5 minutes and 7 seconds ago, saying: Under 'make test', it balloons up to 1.4 GB RSS for me. [Aug 13 00:26:42 2008]
rurban Who gives out commit access here? 11:32
NotFound rurban: somenone that has metacommit privileges. 11:35
rurban I got only contact to Allison and chromatic, and my papers should already have arrived.
I want to commti my stuff at least to the new cygwin070patches branch (though it has almost nothing to do with cygwin per se, it's an install branch for packagers) 11:36
Who maintains www.parrotcode.org/source.html? This should be updated also. 11:39
dalek r30507 | kjs++ | trunk: 11:44
: [pirc/new] add documentation to pir.y
: + add function documentation
: + add some comments here and there
: + add doc. about impl of constant folding and instr. select.
diff: www.parrotvm.org/svn/parrot/revision?rev=30507
moritz bacek: I'll take a look at it later today 12:05
dalek r30508 | kjs++ | trunk: 12:15
: [pirc/new] allow for declaring special-handled math ops (add, sub, etc) as locals/constants.
: + oh noes! code duplication!
: + need a good way to refactor, or maybe a #define. Refactoring not so easy because of Flex's macro stuff (yylval is a macro).
diff: www.parrotvm.org/svn/parrot/revision?rev=30508
moritz bacek: some of the docs in your patch still refer to index() behaviour 12:17
+If $4 is omitted, B<index> starts searching from the beginning of the string.
bacek moritz: probably. I'm too lazy at sundays nights ;) 12:18
dalek r30509 | kjs++ | trunk: 12:20
: [pirc/new] allow math-opnames (add, sub, etc) as .const identifiers.
diff: www.parrotvm.org/svn/parrot/revision?rev=30509
12:21 masak joined 12:25 kid51 joined
dalek r30510 | allison++ | cygwin070patches: 12:26
: [cygwin070patches] Apply first round of patches from Reini Urban to a
: branch for testing and refinement.
diff: www.parrotvm.org/svn/parrot/revision?rev=30510
r30511 | kjs++ | trunk: 12:33
: [pirc/new] add a few comments on the symbol API.
diff: www.parrotvm.org/svn/parrot/revision?rev=30511
bacek moritz: btw, I fixed patch from #58310. It now passes all unfudged tests. We just need someone with proper parrot knowledge to submit or reject it. 12:34
dalek r30512 | jkeenan++ | scriptconfigure: 13:07
: Correct syntax of process_options() in two test files and make related adjustments.
diff: www.parrotvm.org/svn/parrot/revision?rev=30512
r30513 | kjs++ | trunk: 13:08
: [pirc/new] keep track of number of PASM registers per sub. This will be useful for an optimizing register allocator, I think. It's a nice statistic anyway.
diff: www.parrotvm.org/svn/parrot/revision?rev=30513
13:10 megamic joined
dalek r30514 | jkeenan++ | newsc: 13:22
: Creating newsc in svn.perl.org/parrot//branches
diff: www.parrotvm.org/svn/parrot/revision?rev=30514
r30515 | jkeenan++ | newsc-30513: 13:23
: Tagging trunk at r30513 so that the newsc can later be synched to it.
diff: www.parrotvm.org/svn/parrot/revision?rev=30515
13:35 Whiteknight joined
dalek r30516 | jkeenan++ | newsc: 13:39
: This branch supersedes the scriptconfigure branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=30516
r30517 | jkeenan++ | scriptconfigure: 13:41
: This branch has been superseded by the newsc branch.
diff: www.parrotvm.org/svn/parrot/revision?rev=30517
r30518 | jkeenan++ | scriptconfigure-29975:
: This branch has been superseded by the newsc branch.
13:41 rahuljha joined
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=30518 13:41
13:46 gmansi joined
dalek r30519 | jkeenan++ | newsc: 13:50
: Add information re --verbose-step to Configure.pl help message. Delete info re two superseded options.
diff: www.parrotvm.org/svn/parrot/revision?rev=30519
13:54 tetragon joined 13:56 cognominal_ joined 14:09 jhorwitz joined 14:10 rahuljha_ joined 14:20 rba joined, davidfetter joined 14:23 tetragon joined, jan joined
kid51 Configuring Parrot via config file is now available for testing: rt.perl.org/rt3/Ticket/Display.html?id=44315 14:39
Infinoid now all we need is an opengl-based configurator :) 14:45
14:49 paco joined
NotFound Will be nice to be able to configure parrot with a wiimote X-) 15:19
davidfetter anybody working on a c emitter for pge? 15:20
cognominal_ davidfetter, pmichaud has talked about a rewrite of pge in C. I think it will still emit PIR. You should ask him 15:23
davidfetter cognominal_, thanks for the tip 15:24
davidfetter looking to replace lexx/yacc
hrm. any chance of a pir->c compiler? 15:25
moritz that would have to do garbage collection on its own, for example 15:26
davidfetter ouch
NotFound Copying the C code for each opcode and linking with libparrot can be a way. A Not-In-Time compiler X-) 15:28
davidfetter hrm 15:30
cognominal_ davidfetter, I think one of the very point of parrot is to have some portable bytecode leveraging a powerful virtual machine so I don't see the interestet of a pir->c compiler. 15:43
davidfetter hrm
cognominal_ The generated code will be very dependent on the vm anyway
may be it makes sense for another Perl 6 implementation 15:44
moritz sense SMOP 15:45
15:45 Copas joined
cognominal_ yea, but I don't know enough about it to say anything 15:45
davidfetter
.oO(-ldwim)
15:46
cognominal_ and for JIT to be really interesting for rakudo, support of static types like int and num in PCT is necessary. 15:47
currently all types are boxed. 15:48
I hope pmichaud will add that so that people will be interested to do more work on JIT because it will directly translated in performances 15:50
15:51 xshelf joined
moritz which part of PCT are you talking about? the PAST -> POST -> bytecode part? 15:52
cognominal_ on the other hand, PGE emits quite low level code so it may be JITable. I have never checked. 15:53
xshelf i am trying to build parrot/perl6 on windows XP, the build fails looking for sal.h, I am using activestate perl which uses MCVS to build parrot/perl6.
dalek r30520 | pmichaud++ | trunk: 16:07
: [rakudo]: spectest-progress.csv update: 126 files, 2267 passing tests
diff: www.parrotvm.org/svn/parrot/revision?rev=30520
16:21 paco joined 16:26 grim_fandango joined
dalek r30521 | jkeenan++ | trunk: 16:27
: Applying patch submitted in
: rt.perl.org/rt3/Ticket/Display.html?id=57884 by Vyacheslav Matjukhin.
: Improve way in which Parrot::Configure::Compiler adds codas.
diff: www.parrotvm.org/svn/parrot/revision?rev=30521
r30522 | allison++ | pdd27mmd: 16:37
: [pdd27mmd] Change the signature string stored in a CallSignature to be more
: like the PCC signature string.
diff: www.parrotvm.org/svn/parrot/revision?rev=30522
16:58 Zaba_ joined 17:16 rurban_ joined 17:48 ujwalic joined
ujwalic how can I generate html documentation for parrot source code 17:50
rurban c code with the ususla tools, pir and pasm only via perldoc 17:58
sorry, the usual tools
18:02 cognominal__ joined
moritz make html 18:05
dalek r30523 | allison++ | pdd27mmd: 18:08
: [pdd27mmd] Add storage for a return array (if the result PMC(s) are passed in
: the varargs along with the arguments to the call, PCC-style).
diff: www.parrotvm.org/svn/parrot/revision?rev=30523
18:47 Zaba joined, teknomunk_ joined
pmichaud moritz: For #58032, how were you thinking the tests would be corrected? 19:07
er, #58302
moritz s:2nd/not // 19:08
pmichaud I think it's not so easy. :-)
(0|undef && say "not ok 34") || say "not ok 34";
(0|undef && say "not ok 34") || say "ok 34"; 19:09
will output "ok 34" twice.
moritz oh dammit
pmichaud :-)
moritz you're right
will prefix:<?> autothread? probably not, right? 19:10
pmichaud actually, I'm wondering if even && will autothread.
now that I think about it.
Tene || say "ok {$i++}"
;)
pmichaud but yes, afaik prefix:<?> autothreads 19:11
moritz that's a bit nonsensical
pmichaud why? it's entirely valid to have a junction of booleans
moritz is prefix:<?> the same as .true ?
but is it desired?
pmichaud I don't know. I haven't read anything official to indicate that prefix:<?> or .true doesn't autothread 19:12
moritz if .true autothreads, 'if 1|2 { ... } also autothreads
pmichaud why is that?
moritz doesn't if call .true?
I mean there has to be one simple way of getting the truthness out of a junction 19:13
19:13 contingencyplan joined
pmichaud there is -- evaluate it in boolean context 19:13
but .true isn't necessarily a method on a junction 19:14
($a|$b).true is the same as $a.true | $b.true
moritz ok, and prefix:<?> forces boolean context, right?
pmichaud yes, I understand what you're saying. I just haven't heard an official answer yet.
One could equally argue that ?($a|$b) is equivalent to ?$a | ?$b 19:15
and that collapsing of junctions occurs only at statement sequence points, such as "if"
I'm not necessarily arguing it that way -- I'm just saying we may need clarification. 19:16
I *do* know (from conversations with Larry) that ($a|$b).foo autothreads
moritz but then you get 'if false == ?($a|b)' being 'if false == ?$a || false == ?$b', which is certainly not DWIMmy
ok, I'll ask the list
pmichaud why would that not be dwimmy? 19:17
it's asking the question of "is either $a or $b false"
(assuming one could do == on false, which probably doesn't do what we want either :-)
moritz but if ? is boolean context... let's ask the list
pmichaud I can see two questions
moritz since False is an Enum type of int, it'l DWIM
pmichaud not really :-) 19:18
== is always numeric equivalence
$a could be 0 but True
moritz ouch
pmichaud anyway, yes, let's ask the list if prefix:<?> collapses junctions 19:19
also if junctions autothread over infix:<&&> and infix:<||>
dalek r30524 | allison++ | pdd27mmd:
: [pdd27mmd] Calculate the type tuple for generated NCI MULTIs.
diff: www.parrotvm.org/svn/parrot/revision?rev=30524
moritz I'll write to the list 19:20
pmichaud: bacek++ submitted two patches that implement rindex in parrot (#58308) and subsequently in Perl 6 (#58310) - do you think it's right to do it parrot? 19:23
I'm about to test it 19:25
breaks the build... 19:27
19:30 jhorwitz joined
jhorwitz pmichaud: ping 19:30
19:31 AndyA joined 19:46 paco joined 20:22 rurban_ joined 20:37 ujwalic_ joined
NotFound moritz: rindex is not in pdd28_strings, will be better to discuss the issue before applying the patch. 20:38
moritz NotFound: ok 20:40
20:44 rba joined 21:12 Zaba_ joined, tetragon joined 21:40 paco joined 22:17 particle joined
dalek r30525 | julianalbo++ | trunk: 22:17
: [PDB] some more refactor of command line parsing
diff: www.parrotvm.org/svn/parrot/revision?rev=30525
22:21 Whiteknight joined 22:47 raiph joined 23:27 Khisanth joined 23:40 kid51 joined, Khisanth joined 23:42 Khisanth joined