pugscode.org/ | nopaste: sial.org/pbot/perl6 | ?eval [~] <m oo se> | We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/
Set by diakopter on 11 July 2007.
pugs_svn r19201 | fglock++ | [kp6-nqp] t/kp6/01-tap.t passes without warnings 00:01
00:05 theorb joined 00:24 felipe joined
pugs_svn r19202 | avar++ | The Getopt::Long version < 2.37 hack didn't work, it ran perl as perl -I script/kp6 00:52
01:24 penk joined 01:37 REPLeffect left 02:14 zakame joined 02:23 Jedai joined 02:34 lisppaste3 joined
Auzon I just have the kp6 directory checked out, and I get this message: 02:53
../../t/01-sanity/01-tap.t: does not exist at run_tests.pl line 301, <DATA> line 7.
(It should only be one "../"
ah... I think I figured it out 02:55
hm, no go, even with all of Pugs checked out... :-/ 03:02
aha 03:10
Just my stupidity :P
03:18 jferrero left 03:20 jjore-m joined 03:23 penk left 03:57 avar joined 04:58 BinGOs_ left 05:13 Jedai left, sri_ left, Jedai joined, sri_ joined, thoughtpolice joined, amnesiac joined, revdiablo joined, JarJarBinks joined, `nipra joined, diotalevi joined, drbean joined, pjcj joined, zamolxes joined, jiing joined, integral joined, Juerd joined, Grrrr joined, allbery_b joined, buubot joined, idiotmax joined, thepler joined, tewk joined 06:10 Ashizawa joined 06:46 thoughtpolice left 07:04 devogon joined 07:07 jisom joined 07:21 zamolxes left 07:37 amnesiac left
pugs_svn r19203 | pmichaud++ | Token <number> works much better if we try to parse 07:41
r19203 | pmichaud++ | <dec_number> (with a required decimal point) before
r19203 | pmichaud++ | <integer>.
07:43 BinGOs joined 07:53 Aankhen`` joined 08:03 drrho joined 08:06 justatheory joined 08:09 iblechbot joined 08:16 justatheory left 08:22 franck___ joined 08:40 pravus joined 08:46 penk joined 08:50 spinclad joined 08:54 BinGOs left 08:55 elmex joined 08:59 BinGOs joined 09:10 zev joined 09:21 masak joined 09:41 zamolxes joined 09:47 meppl joined 09:55 andara joined, andara left 10:01 hanekomu joined 10:11 zakame_ joined 10:13 drrho left
moritz_ @tell fglock so what's the state of your parrot considerations? first step: nqp emitter? 10:22
lambdabot Consider it noted.
10:25 zakame left
pugs_svn r19204 | moritz++ | [kp6-nqp] emit "module $name { ... }" in CompUnit 10:32
r19204 | moritz++ | (as opposed to "module $name; ...")
10:33 charsbar joined 10:42 drrho joined 11:07 jisom left 11:19 meppl left 11:25 Southen_ left 11:26 Southen_ joined 11:29 macae joined 11:31 fglock_ joined, fglock_ is now known as fglock 11:35 riffraff joined, rff_ joined 11:36 riffraff left
pugs_svn r19205 | ferreira++ | r191@dracma: perl | 2007-12-13 09:37:40 -0200 11:38
r19205 | ferreira++ | this test only failed because plan was wrong
11:42 masak left 11:44 ferreira joined 11:56 rff_ left
pugs_svn r19206 | ferreira++ | r197@dracma: perl | 2007-12-13 10:13:54 -0200 12:14
r19206 | ferreira++ | another plan fixed
12:17 masak joined
moritz_ ferreira++ # tending the test suite 12:18
ferreira moritz_: the links to test sources in perlcabal.org/smoke.html are broken for a long time? 12:21
lambdabot Title: TAP Matrix - Wed Dec 12 22:15:18 2007 GMT
12:21 fglock left 12:23 andara joined 12:26 njbartlett left
pugs_svn r19207 | andara++ | [Pugs] 12:28
r19207 | andara++ | a patch for compiling pugs with ghc-6.8 with some notes.
r19207 | andara++ | tested only on Linux/x86 and OS X 10.4/PPC
moritz_ ferreira: sadly, yes
andara: does it still work with 6.7.1?
ah, it's a diff
moritz_ should look before asking stupid questions ;)
andara moritz_: yes, it's a diff. I'll apply it to the tree when we have 6.8 on feather 12:29
ferreira moritz_: do you know where are the script sources that produce that?
moritz_ ferreira: wait a sec... 12:31
util/testgraph.pl perhaps?
ferreira looks like it. Thanks. 12:32
12:37 IllvilJa joined 12:58 kanru joined 13:12 Ashizawa left, ispy_ joined 13:17 njbartlett joined 13:23 fglock_ joined, fglock_ is now known as fglock, ruoso joined 13:33 ispy_ left 13:34 ispy_ joined 13:38 fglock_ joined 13:47 ruoso left 13:49 fglock left 13:51 ruoso joined 13:54 jhorwitz joined 13:57 fglock__ joined, fglock__ is now known as fglock 13:58 njbartlett_ joined 14:05 fglock_ left 14:09 Jedai left 14:12 njbartlett left 14:13 Jedai joined 14:14 masak left, masak joined 14:34 krastowq joined 14:35 krastowq left 14:43 zakame_ left 14:44 zakame_ joined 14:46 Psyche^ joined
pugs_svn r19208 | ferreira++ | r200@dracma: perl | 2007-12-13 12:47:24 -0200 14:47
r19208 | ferreira++ | minor fixes and get rid of "@b || ()" which coerces to scalar
14:53 vdrab joined
pugs_svn r19209 | fglock++ | [kp6] added misc/nqp/test1.nqp - we need this in order to access the Parrot MetaClass 15:02
fglock moritz_: re state: nqp doesn't seem to map to low level kp6 15:03
lambdabot fglock: You have 1 new message. '/msg lambdabot @messages' to read it.
15:03 Patterner left, Psyche^ is now known as Patterner 15:04 hanekomu left 15:08 pmurias joined
fglock [particle]: ping 15:09
@tell agentzh there is a v6.pm cpan-testers report with "t/01-sanity/02-counter...............greediness control not implemented: [ '\Ā»' | . ]" - is this PCR related? 15:17
lambdabot Consider it noted.
15:17 njbartlett joined 15:19 chris2_ joined
pmurias fglock: does PAST corespond to low-level kp6? 15:20
[particle] fglock: i'm on the phone, i'll let you know when i'm off 15:21
15:22 jferrero joined 15:23 kanru left
fglock [particle]: ok 15:27
15:27 kanru joined, Ashizawa joined
fglock pmurias: I haven't looked at PAST in detail 15:28
15:29 Ashizawa left, cmarcelo joined 15:32 njbartlett_ left
ispy_ fglock: Are you the author of kp6? 15:40
pmurias ispy_: he is
ispy_ Then he's just the man I need to speak with :) 15:41
[particle] fglock: i'm back
pmurias ispy_: want to contribiute? 15:45
ispy_ pmurias: Yes, moritz_ mentioned you guys could use a hand.
pmurias: I've been given commit access and was looking to get involved some place I could be used. 15:46
kp6 seems interesting :)
pmurias looked at TODO? 15:47
ispy_ Have no idea where to start helping out, I was looking for some direction...
Point me in the right direction and I can fly on my own so to speak.
pmurias ispy_: i think fglock should do the pointing he has more project vision then me 15:48
ispy_ pmurias: No problem, how many are involved with this project?
[particle] ispy_: how'd you like to work on the nqp emitter for kp6? 15:49
we're trying to get kp6 to run on parrot
ispy_ [particle]: what needs to be done?
[particle] first, you'll need kp6 and a working parrot
pmurias ../../parrot ../../compilers/tge/tgc.pir --output=POST/Grammar_gen.pir POST/Grammar.tg
Tried to get null global 15:50
current instr.: 'parrot;TGE;__onload' pc 0 (TGE.pir:85)
[particle] then, you'll modify kp6's nqp emitter so the nqp code it generates compiles under parrot
pmurias: try cd compliers/tge && make clean all
15:51 kanru left
[particle] (i think there's a makefile problem) 15:51
pmurias [particle]: work 15:52
s
[particle] yay
ispy_ haha...
I'll spend the day getting familiar with kp6 in general so I can get an overall idea of the work flow...
[particle] ispy_: i have a little script called v6/v6-KindaPerl6/nqp.cmd, if you can parse windows cmd language, it should get you started 15:53
@echo off
set PARROT=c:\usr\local\parrot\trunk\parrot
set NQP=c:\usr\local\parrot\trunk\compilers\nqp\nqp.pbc
perl script\kp6 -Cnqp %* | %PARROT% %NQP% --
lambdabot echo; msg:IrcMessage {msgServer = "freenode", msgLBName = "lambdabot", msgPrefix = "[particle]!n=particle@c-24-19-3-148.hsd1.wa.comcast.net", msgCommand = "PRIVMSG", msgParams = ["#perl6",":@echo
off"]} rest:"off"
[particle] kicks lambdabot
ispy_ [particle]: I'll check it out.l
[particle] then i run something like: 'nqp t\kp6\01-tap.t 15:54
fglock (back)
[particle] ispy_: also, svn log Visitor/Emit/Nqp.pm should be instructive 15:55
15:55 zakame_ is now known as zakame
[particle] er, src/KindaPerl/... 15:56
fglock [particle]: I'm trying to get the Class and MetaClass objects
[particle] .WHAT? :) 15:57
fglock .HOW
[particle] should work with HEAD
15:58 chris2_ is now known as chris2
fglock would you take a look at misc/nqp/test1.nqp 15:58
[particle] okie 16:00
16:01 jferrero left
[particle] oh! ha. pm got .HOW working in perl6 last night, not nqp 16:01
lemme see what it would take to get that into nqp 16:04
16:05 penk left 16:06 andara left
fglock isn't HOW native to Parrot? 16:06
[particle] it's not a parrot op 16:08
it exists in the mop
get_class opcode
16:08 Limbic_Region joined
Limbic_Region salutations all 16:10
pmurias salutes 16:11
16:15 Psyche^ joined
fglock [particle]: does nqp have variable assignment? 16:17
[particle] no assignment, only binding 16:18
fglock so I need to create a Container class, like in kp6-perl5 16:19
or does it have Scalar.STORE ?
16:19 Patterner left, Psyche^ is now known as Patterner
fglock $x := Scalar.new(); $x.STORE( 1 ); 16:19
can I do this?
16:20 pmichaud joined
[particle] hey pm 16:20
pmichaud as the old american indians were reported to say, "HOW."
moritz_ ;)
fglock pmichaud: hi!
pmichaud nqp doesn't support .HOW at the moment -- it treats it as a method call on an object 16:21
so, if the object knows how to .HOW, then .HOW works :-)
16:21 njbartlett_ joined
[particle] i couldn't figure out how to create a builtin method like .HOW 16:22
pmichaud well, because it should belong to the destination object
fglock there is a trick we use in MiniPerl6,
[particle] 1.HOW should work
fglock you can define a subroutine that returns the MetaClass object
pmichaud and besides, NQP tries to avoid builtin functions as much as possible -- the point is to not have a runtime
16:22 kanru joined
pmichaud or, at least, to not have a runtime beyond what Parrot already provides 16:23
[particle] right, i was wondering how to do HOW without a runtime
fglock so you can add methods to it
pmichaud in Parrot it's a bit tricky to add methods to the built-in types
[particle] is it? you should be able to do it through the PMCProxy 16:24
pmichaud "add_method" on a PMCProxy class doesnt work.
fglock pmichaud: do you think it makes sense to write the object system over nqp, and ignore the Parrot OO?
pmichaud (I know, I tried it)
fglock (that's what kp6-perl5 does)
pmichaud fglock: writing the object system over nqp might work, although nqp was never designed for that 16:25
fglock it's slow :(
pmichaud oh the other hand, I did manage to implement .HOW in perl6 last night :-)
moritz_ fglock: I think there's no real point in doing that, because parrots object model has all we need
fglock: it's just not all accessible from within nqp
fglock pmichaud: how did you do it?
[particle] sure, but perl6 has a big runtime
.HOW? how! :) 16:26
pmichaud fglock: with lots of smoke and mirrors, unfortunately. :-)
fglock does it make sense to write a new Perl 6 PMCs?
pmichaud but before going too far in that... particle pasted the code
16:18 <particle> my $v := 1; 16:27
16:18 <particle> my $int := $v.HOW();
16:18 <particle> say('# Int = ', $int);
and I'm not sure why one would be printing the metaclass object
fglock pmichaud: that's just to be sure it works correctly,
i need it to add new classes/methods 16:28
pmurias fglock: is it possible to call a method which name is contained in $name in kp6?
moritz_ kp6: sub foo { say "foo" }; my $b = "foo"; $b.() 16:29
fglock pmurias: I think you need to add the method to a class
exp_evalbot r19209: OUTPUT[no method 'APPLY' in Class 'Str'ā¤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345ā¤ KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x8e73f30)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169ā¤
..main::DISPATCH('HASH(0x8e73f30)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/Kinda...
fglock ah
pmichaud if it were me, I'd write up a quick .pir file for kp6 that adds the .HOW methods into the Parrot builtins
pmurias fglock: i want to write a nqp compatible .perl in kp6
pmichaud that seems a lot easier than writing up a bunch of new PMCs. And that's effectively what I'm doing in perl6 16:30
For example, in 16:18 <particle> my $v := 1;
oops
wrong past
16:18 <particle> my $int := $v.HOW();
[particle] pmichaud: an .include file? that seems easy enough
pmichaud 16:18 <particle> say('# Int = ', $int);
paste
svn.perl.org/parrot/trunk/languages...Object.pir
that's the code that is implementing WHAT, HOW, isa, etc for Perl 6's basic types. It's also handling things like the fact that Parrot's 'String' should be a Perl 6 'Str'
fglock pmurias: .perl should be supported by Parrot
[particle] how does .perl work? 16:31
can you evalbot a sample?
moritz_ pugs: say <foo bar>.perl 16:32
exp_evalbot OUTPUT[("foo", "bar")ā¤]
[particle] so, it desugars?
moritz_ .perl is Perl6's builtin Data::Dumper
pmichaud .perl is intended to generated code that when evaled would recreate the structure
[particle] gotcha
moritz_ it can sugar and desugar as it likes ;)
pmichaud in S02, starting with "To get a Perlish representation of any object, ... " 16:33
pugs_svn r19210 | pmurias++ | [kp6] unfinished proof of concept PAST wrapper
pmurias fglock: you can look at the commit to see what i'm aiming fo
r
16:36 njbartlett left
fglock i'm still balancing our options, 16:37
what if kp6 compiled directly to pir
moritz_ what's the advantage of pir compared to PAST?
fglock we have PAST, PIR, and nqp; I assume it doesn't make sense to compile to perl6
moritz_ agreed 16:38
fglock moritz_: pir gives more access to low level workings
16:38 penk joined
moritz_ fglock: ok, good point 16:39
[particle] fglock: you can use pir inline in nqp
pmichaud also in PAST, for that matter :-)
[particle] PIR <noop>;
true
pmichaud PIR q<noop>;
(don't forget the 'q')
[particle] sorry, sticky q key
pmichaud hands particle a pry bar 16:40
[particle] also 'PIR <<END_OF_PIR;'
pmichaud PIR q:to:'END';
[particle] except, that's spelled....
yep
pmichaud I still owe rdice an article about inline pir in nqp -- maybe I should write that up this morning 16:41
fglock pir inline in nqp looks nice 16:42
but i'd need more details on nqp internals
pmichaud the article would explain it
but essentially to grab a lexical, one does q< $P0 = find_lex '$foo' >; 16:43
to rebind a lexical: q< store_lex '$foo', $P0 >
fglock I could implement assignment using this
16:44 PhileasFox joined
pmichaud there's not a way in NQP's inline pir to create lexicals -- at least not one that works reliably. 16:45
but one can always do:
my $foo;
PIR q< store_lex '$foo', whatever >; 16:46
[particle] .lex '$foo' won't work?
fglock in short, use nqp for closures and variable allocation, and use PIR for OO
pmurias fglock: or we could use PAST for closures and variable allocation, and PIR for OO 16:47
pmichaud depends on what you mean by "PIR for OO" 16:48
NQP does OO just fine
it's just Parrot OO
in fact, now that I think about it.
fglock how is Parrot OO different from Perl 6 OO ? 16:49
pmichaud (writing code)
nopaste?
[particle] pastebot?
pmichaud is there a nopaste bot on the chan?
pmurias yes
[particle] @paste?
lambdabot Haskell pastebin: hpaste.org/new
Khisanth perlbot: paste 16:50
perlbot Paste your code to sial.org/pbot/perl erxz.com/pb or p3m.org/pfn/perl and #Perl will be able to view it.
lambdabot Title: sial.org Pastebot - pasteling
pmichaud hpaste.org/4433 16:51
Khisanth perlbot needs context aware factoids :)
pmichaud (Parrot OO versus Perl 6 OO) Parrot's OO is more class-based, Perl 6 tends to do things with prototypes 16:52
also, there's not a top-level base class that subsumes all of the different types of PMCs that could appear
fglock you mean, we could create a kp6 object hierarchy, which inherits from Parrot basic classes 16:53
pmichaud that's what perl6 is doing, yes.
16:53 penk left
[particle] yes 16:53
create an oo runtime lib
16:53 penk joined
fglock ok 16:53
pmichaud but "hierarchy" is a bit difficult, because there's not a superclass that links, say, 'Integer' and 'String'
[particle] it'll be faster than the one sitting on perl5, we promise 16:54
fglock I think can we build "Scalar" that way
pmichaud the other thing to keep in mind is that "object" in Parrot speak has two meanings -- it can either be a PMC type or it can be something implemented using the Object PMC type
fglock or, is $x already a Scalar? 16:55
pmichaud in nqp, $x is a symbol entry 16:56
i.e., it's something in a (lexical) symbol table somewhere
by definition, that entry refers to a PMC of some type. We don't have Scalar PMCs yet -- just the value types.
fglock so this part needs some emulation
pmichaud (and I'm not quite sure how one can implement Scalar with what Parrot has at the moment.) 16:57
fglock kp6 does some tricks with the dispatcher, we could port that to kp6-perrot
parrot
pmichaud what sorts of tricks?
fglock Containers have a separate MetaModel 16:58
that you can access by building a proxy with VAR($x)
pmichaud right, Parrot doesn't have that yet
fglock otherwise, you are always accessing the contents
kp6 compiles $x=2 to: VAR($x).STORE(2) 16:59
pmurias and $x.foo to $x.foo
fglock yes 17:00
pmichaud what about binding?
$x := $y
fglock VAR($x).BIND( VAR($y) )
hmm, no 17:01
pmichaud so, after that $x contains a reference to the $y Scalar?
fglock VAR($x).BIND($y)
VAR($y) is called inside .BIND
pmurias fglock: it's emitted perl5 $x = $y
fglock no, both contain pointers to a second place
pmurias: I've changed that, it had problems 17:02
pmurias sorry i'm wrong
pmichaud and so VAR($x).STORE(2) causes a 2 to be stored into the place pointed at by $x ?
fglock they have a "shared cell"
yes, 2 is stored in an "attribute" in $x 17:03
kind of
pmichaud and that attribute would be shared with $y if they were bound?
fglock yes
pmichaud what about arrays?
fglock they are more like a list of Scalar 17:04
it behaves the same, regarding VAR(...)
pmichaud yes, that's where Parrot starts to break down -- Parrot's arrays are list of values
fglock and @a[1][2][3] returns a Scalar-proxy that will do all the autovivifications if necessary 17:05
that is, if the cell is .BIND or .STOREd
pmichaud anyway, it starts to get real icky in parrot if every value in an aggregate requires two PMCs (plus the PMC for the aggregate itself) 17:06
we might end up having to do that, but so far I've been avoiding it 17:07
17:07 Southen joined
fglock the "cell" could be a C data structure, it doesn't need to be an object 17:08
maybe it already exists anyway 17:09
pmichaud to be visible at the parrot bytecode level, it would need to be a PMC
fglock it's just a pointer
pmichaud but it's a pointer that can be referenced
that's essentially what Scalar-proxy is doing 17:10
it's creating a reference to a cell in an aggregate
fglock no, it doesn't do that, 17:11
the cell in the aggregate doesn't exist yet
pmichaud maybe not physically, but it virtually exists :-)
fglock it gets vivified on demand
right
pmichaud I can reference items that don't exist yet. That's effectively what '$x' means when it hasn't been instantiated yet :-) 17:12
in fact, if one treats the symbol table as a Hash, then all Scalars are actually like "Scalar-proxy"
fglock exactly 17:13
pmichaud well, we may end up implementing a Scalar PMC class that acts like scalar-proxy
as you already know, the tricky part is knowing when we're working with the value and when we're working with the container 17:14
fglock the VAR() function fixes that
pmichaud is it a function or a macro? 17:15
I mean, it's not a function in the same sense that foo(2) is a function
it sounds more like a context
fglock it's implementation dependent; it's a function in kp6-perl5 17:16
it wraps the Scalar, swapping the dispatchers 17:17
a context would work too 17:18
17:19 penk left, penk joined
fglock so I probably need a few C pmcs for kp6 17:21
17:21 Southen_ left
pmichaud anyway, I have to afk for a bit 17:22
fglock ok, I'll get some coffee :)
17:23 jcpiza joined 17:24 ahmadz joined, ahmadz left 17:32 amnesiac joined 17:33 justatheory joined 17:35 fglock__ joined
fglock__ this is an interesting problem, Parrot wants to give me a full set of tools, but I'm looking for a different set 17:35
I need to learn more about Parrot 17:36
17:36 jisom joined
ispy_ fglock__: different computer? 17:36
fglock__ ispy_: lousy internet router
ispy_ fglock__: I just sent a message to your other handle... I'll post here. 17:37
So really fast a quick background on me. I've been developing software as a hobby for 4 years, 6 months professionally. I'm for the most part a Perl5 developer that also dabbles in python, tcl and javascript. I have NO experience with low level languages or for that matter any complete understanding of pointers so any low-level work you need help with is best left for those who grasp those concepts. As far as Perl5/6 related assistance, I can confidently
(12:32:47 PM) ispy_: Just wanted you to know what I'm able to bring to the table
pmichaud fglock__: this is partially why perl6 on Parrot has taken a while. :-)
fglock__ ispy_: one sec 17:38
pmichaud it's also worth remembering that Parrot is targeting much more than just Perl 6
avar ispy_: "I can condifently" is where you got cut off 17:39
fglock__ ispy_: you can probably learn all you need by following pointers that people will give you here and there 17:40
ispy_: you don't need to grasp all at once
17:40 TJCRI joined
fglock__ pmichaud: re taken a while, kp6 really needs just a few low level structures, 17:42
maybe it's worth implementing them in C?
pmichaud could be
depends on what they are
17:42 ruoso left
moritz_ that's what ruoso is doing 17:42
pugs_svn r19211 | pmurias++ | [kp6] added .DISPATCH to Object which serves as $foo.$meth
r19211 | pmurias++ | used in PAST.pm
17:43 jjore-m left
moritz_ is $foo.$meth allowed at all? 17:43
syntactically, I mean
pmichaud yes
moritz_ isn't that $meth: $foo; ?
17:43 ruoso joined 17:44 fglock left 17:45 franck___ left
pmichaud from S02: $foo $bar: # ILLEGAL -- use $bar.$foo for indirection 17:45
ruoso moritz_, yap6 is almost ready to be a kp6 backend
moritz_ pmichaud: thanks
ruoso at this moment, the APPLY codes can already be implemented 17:46
for the native types
and the last native types can be implemented also
ispy_ moritz_: Does he have plans to expand the tutorial? 17:47
pugs_svn r19212 | ferreira++ | r202@dracma: perl | 2007-12-13 15:46:46 -0200
r19212 | ferreira++ | fixed smarlink errors in t/ pointed by "util/smartlinks.pl --check"
ruoso fglock and I were having a conversation about it at lunch today
moritz_ ispy_: I think he's got no time
ruoso we're in a point that we can plan a statically typed perl subset that would be used to write the MOP
ispy_ moritz_: should that be continued by someone else? It has potential to be an excellent resource. 17:48
moritz_ ispy_: but I'm sure you can become a coauthor
ruoso and this language would be compiled by kp6 targetting yap6 runtime
moritz_ (I'm one)
ispy_ moritz_: hmm... I'll ask him next time he's on.
pmurias ispy_: what tutorial? 17:49
ispy_ pmurias: diveintoperl6
pmurias: I would like to write an entry on complex data structures
fglock__ otoh, Parrot likely provides great process management tools (gc, stm, light threads), which is nice 17:50
ruoso yep...
moritz_ @seen thoughtpolice
lambdabot I saw thoughtpolice leaving #perl6, #haskell and #xmonad 11h 4m 26s ago, and .
17:50 jisom left
ruoso yap6 doesn't means to compete with parrot in any way 17:50
moritz_ ispy_: just @tell him in a message that you'd like to publish one 17:51
ispy_: lambdabot will deliver it for your
ruoso yap6 have a stupid refcount gc, uses libc memory management, and relies on pthread.
nothing really portable and powerfull
but small and simple
ispy_ moritz_: thanks dude... I'll do that now. 17:52
fglock__ ruoso: how about converting the yap6 things to Parrot pmcs
ruoso I wasn't able to get the PMC out of the parrot strucutre 17:53
it was depending on a much more complex runtime from every side I looked
ispy_ @tell thoughtpolice Hey, I've recently began contributing to Perl6 development. And learned you were the author of the very site I learned to program in Perl6 from. moritz_ and I were talking and he mentioned you might give me co-author access so I might expand the tutorial. I would really like to write a few data structure examples among a few other things. I really see a lot of additional potential for this blog and would very much like to be apart of t 17:54
lambdabot Consider it noted.
fglock__ i'm thinking of translating Runtime/Perl5/* to Runtime/PMC/* 17:55
then we have a "Perl 6 VM"
ruoso when I tried it, I was only able to do it using PIR...
fglock__ I mean, in C 17:56
17:56 pmichaud left 17:57 Limbic_Region left
ruoso that's what I tried to say by not being able to simplify things 18:00
I wasn't able to get "a small part" of Parrot
I considered that before starting yap6 18:01
but maybe I just missed the point...
18:06 jjore-m joined 18:09 jferrero joined
fglock__ is it already possible to write pmcs in perl5? 18:10
rethorical question, sorry 18:14
pmurias swimming& 18:15
fglock__ a possible plan would be to write the kp6 object system in C+PIR, and then emit nqp+PIR 18:17
18:24 bbkr joined
fglock__ this would possibly result in less performance than the pure PIR version, because PIR is using a simplified model 18:24
18:24 rindolf joined
moritz_ is there a good reason not to use plain, pure PIR? 18:26
fglock__ moritz_: the semantic level of PIR is that of Perl 5, 18:27
it should result in the same level of performance 18:28
same thing for PAST
the main reason for changing the development backend is performance 18:29
unfortunately, performance comes with a huge cost 18:30
so we need to balance that
and do a reality check for premature optimization, for instance
moritz_ fglock__: but with PIR we can use parrot's object system 18:31
fglock__: which means that the emitted code will be much more concise
fglock__ we can't, really
moritz_ why?
fglock__ it doesn't currently implement the same object semantics that kp6 does
moritz_ in which way? 18:32
fglock__ the MetaModel works slightly different, Containers work slightly different
the small differences add up 18:33
moritz_ hm, sad
fglock__ of course, we can discuss that on #parrot and fix that
18:34 DarkWolf84 joined, BinGOs_ joined
moritz_ well, I don't know enough about PIR and about kp6 to comment on it 18:34
fglock__ otoh, Parrot is designed for flexibility, and it can support other models 18:35
18:36 BinGOs left, jisom joined, TJCRI_ joined 18:40 cognominal joined, snearch joined 18:49 TJCRI left 18:50 BinGOs_ is now known as BinGOs 18:52 jjore-m left
fglock__ the good thing is that Parrot seems to have very few PMC bugs, 18:52
which might mean that PMCs aren't that difficult to write
18:54 jjore-m joined 19:00 TJCRI_ left
araujo hi 19:03
araujo has glanced over this parrot discussion
moritz_ hi araujo
araujo fglock__, does kp6 use parrot?
hello moritz_
moritz_ araujo: not in its default backend
araujo how that perl6 hacking goes?
fglock__ araujo: kp6 is meant to use Parrot, as soon as possible 19:07
moritz_ even before bootstrap?
fglock__ kp6 currently uses a "VM" written in Perl 5 19:08
araujo fglock__, i see
fglock__ moritz_: kp6 is nearly bootstrapped
i'm not sure it makes sense to fix the remaining bugs
moritz_ fglock__: what do you mean by "nearly bootstrapped"? does it pass some of the regular kp6 tests? 19:09
fglock__ yes, it passes some of them 19:10
but it's very slow
ispy_ hey guys, how do I pipe file handles like in p5?
:)
moritz_ ispy_: pipe file handles? can you give a short p5 example? 19:11
ispy_ open my $cmd, "command |";
19:11 BinGOs left
fglock__ moritz_: the bugs are perl5-vm bugs, not really kp6 bugs 19:11
moritz_ fglock__: ok
ispy_: not sure.... perhaps it's in S16 19:12
in case of doubt it's the same as in p5, which would translate to my $cmd = open "command |";
ispy_ moritz_: I tried that, assuming the same as you, it failed in pugs... possibly I'm in error though. I'll give it a deeper look. 19:13
moritz_ ispy_: it could very well just not implemented yet
ispy_ moritz_: man, that totally ruins my plan to prototype this network routing program in p6 :( 19:15
moritz_: that's how it goes :)
moritz_ ispy_: I know it's sad, but all p6 implementations are plain weak on I/O
ispy_ moritz_: I can understand why that stuff has taken a potential back-burner, unfortunetly for me the only work I have to do is IO related right now, that's cool... p5 will just have to do it as gracefully as it always has. 19:16
19:17 BinGOs joined
fglock__ hmm - v6.pm should handle that 19:17
[particle] look through the pugs test suite for io tests, and see if they pass 19:19
fglock__ [particle]: are there Parrot vs. Perl 5 benchmarks? 19:23
I wonder if kp6-in-PIR will be fast enough 19:24
ispy_ [particle]: thank you, I'll look into that.
fglock__ compared to kp6 with C-PMCs
[particle] fglock: like alioth? 19:31
fglock__ hmm - looking 19:32
19:34 rindolf left
fglock__ shootout.alioth.debian.org/sandbox/...ang=parrot 19:35
it's about the same in average
19:48 ispy_ left
pmurias fglock__: it's a pity -d:DProf dosn't work on kp6 19:48
19:49 ispy_ joined 19:51 macae left
pmurias fglock__: what are the remaining bugs? only wrong parsing of my $var comes to my mind 19:51
19:54 ruoso left 19:55 jisom left 19:57 fglock__ left 20:04 snearch left 20:06 barney joined 20:11 drrho left 20:22 zzNet joined, jferrero left 20:26 sri_ left 20:37 Khisanth joined 20:41 CMA joined 20:43 sri_ joined 20:50 ruoso joined 20:51 sri_ left, sri_ joined 20:57 `nipra is now known as spliced-nipra 20:58 CMA left 21:01 sri_ left, sri_ joined 21:11 ruoso left 21:15 ruoso joined 21:17 Aankhen`` left 21:19 sri_ left 21:34 masak left 21:36 sri_ joined 21:41 barney left 21:43 lichtkind joined 21:48 jjore-m left 21:49 sri_ left, stevan_ joined 21:53 jjore-m joined 21:56 sri_ joined
[particle] ispy_: ping 21:56
ispy_ [particle]: yes?
[particle] ispy_: i'll join up on hiveminder 21:57
i'm 'particle'
ispy_ [particle]: gotcha... excellent, as a member or organizer?
[particle] org
ispy_ excellent. I'll add you now. Thanks.
[particle]: I guess I need an email addie for invitations. 21:58
[particle] [email@hidden.address]
ispy_ [particle]: just msg it to me if you like.
ok
all set. 21:59
alright, I'll be on in a few hours... getting off work.
Later everyone, thanks again for the involvement particle.
21:59 zzNet left, ispy_ left
[particle] i'm in. 22:00
~~
22:03 sri_ left 22:05 DarkWolf84 left 22:06 DarkWolf84 joined 22:12 jferrero joined 22:17 chris2 left 22:21 obra left 22:24 funktio joined, obra joined 22:27 pbuetow joined 22:30 pmurias left 22:33 Limbic_Region joined 22:38 jferrero left 22:56 mncharity joined 22:58 jferrero joined 23:02 PhileasFox left 23:13 polettix joined 23:15 iblechbot left 23:16 obra left, funktio left 23:26 __Ace__ joined, obra joined, funktio joined 23:30 BinGOs left 23:31 BinGOs joined, ispy_ joined 23:41 funktio left, obra left, Eja joined
Eja www.publicpet.gr/ejavaqel/vote Unbelievable? 23:41
23:41 Eja left 23:42 funktio joined, obra joined 23:43 ispy_ left 23:46 thestarslookdown joined 23:48 ferreira left 23:53 jjore-m left 23:56 jjore-m joined 23:59 Daveman joined