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
|