pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, elf: etc.) (or perl6: for all) | irclog: irc.pugscode.org/
Set by Tene on 29 July 2008.
00:06 eternaleye left
pugs_svn r22690 | ruoso++ | [smop] p6opaque no longer uses v6-sm0p, uses m0ld in its place. p6opaque comes with a default how that implements using the p6opaque as a value, something that is needed to allow you to set a how. 00:30
ruoso @tell pmurias, there's a quasi-segfault in proto.ri... some place is making an excess release, valgrind is complaining about use of free'd data... 00:33
lambdabot Consider it noted.
00:34 sri_work_ left
wayland76 @tell moritz_ Thanks for the article! 00:35
lambdabot Consider it noted.
ruoso sleep &
wayland76 particle: Well, the ROADMAP file in the languages/perl6 directory was last updated in August, and I was interested to see if any of those tasks had been completed :) 00:39
ruoso: G'night 00:40
00:41 eternaleye joined 00:55 ruoso left
wayland76 To answer literal's question the other day, rakudo gets released with Parrot, doesn't it? 00:57
literal yeah, that's true 01:02
[particle] yes 01:08
01:13 hercynium_ joined
literal if all(@newvals) > all(@oldvals) { print "These are all bigger than everything already seen." } 01:21
can it also be written like this? if all @newvals > all @oldvals { print "These are all bigger than everything already seen." }
pmichaud literal: the > operation has higher precedence than list prefix (listop), so the second one would end up parsing as all( @newvals > all(@oldvals) ) 01:31
lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
literal ah
pmichaud so the parens are required.
same with something like say 3 > 1; that's equivalent to say( 3 > 1 ) and not say(3) > 1 01:32
literal now I'm curious, would this do the right thing? if [&] @newvals > [&] @oldvals { ... }
pmichaud same issue -- [&] is a list prefix op
literal ok 01:33
wayland76 [particle]: Was that "yes" related to my immediate previous comment, or to my comment about the ROADMAP? 01:52
01:54 bsb joined 01:57 wknight8111 left 02:22 jhorwitz left 02:41 ab5tract joined 02:54 alanhaggai joined 02:56 hercynium_ left 02:58 eternaleye_ joined 03:12 eternaleye left 03:24 |Jedai| left, Jedai joined, _Jedai_ joined 03:26 awwaiid joined 03:30 spinclad left 03:38 apeiron left 03:41 hercynium_ joined, Torment left 03:42 apeiron joined 03:44 adc_Penner joined 04:11 allbery_b left, allbery_b joined 04:23 Psyche^ joined 04:25 adc_Penner left 04:34 Patterner left, Psyche^ is now known as Patterner 04:40 justatheory left 04:44 alanhaggai left 04:51 ihrd joined 05:10 ab5tract left 05:21 _Jedai_ left 05:26 xinming left 05:27 penk joined 05:33 diakopter left 05:38 TimToady left 05:39 TimToady joined 05:40 diakopter joined 05:49 alanhaggai joined 06:01 Ehtyar joined 06:13 alanhaggai left 06:17 elmex joined 06:28 ashizawa joined 06:33 silug left 06:34 xinming joined
pugs_svn r22691 | lwall++ | [Cursor] don't cache anonymous lexers 06:42
TimToady (well, not on disk, anyway)
06:43 Jansen_ joined, Jansen_ left 06:49 sri_work joined 06:51 pbuetow joined 06:59 bsb left 07:06 spinclad joined
azawawi rx.t took 5486 wallclock secs 07:19
07:23 ihrd left 07:30 cosimo joined 07:36 pbuetow left 07:56 iblechbot joined
azawawi moritz_: ping 08:04
08:05 zamolxes left
pasteling "azawawi" at 212.38.144.4 pasted "Execution time of ETOOMUCHTIME (STD_Syntax_Highlighter)" (377 lines, 26K) at sial.org/pbot/32762 08:05
"azawawi" at 212.38.144.4 pasted "ETOOMUCHTIME full output [includes errors]" (2216 lines, 73.2K) at sial.org/pbot/32763 08:07
wayland76 no-one here except us pigeons :)
azawawi pong
;-)
08:08 ejs joined
azawawi what r u working on wayland76? 08:08
@tell pmurias i attached the full output along with the summary in sial.org/pbot/32762 and sial.org/pbot/32763 08:15
lambdabot Consider it noted.
08:22 alanhaggai joined 08:29 tomyan joined 08:45 kanru left, kanru joined
wayland76 azawawi: Well, mostly I'm waiting for operator overloading :) 09:03
azawawi wayland76: that took some time ;-) 09:04
wayland76 In relation to perl6, I'm kinda keen to get some sort of path/globbing thing going for trees
yeah, I only check IRC occasionally, although it's often running in the background somewhere 09:05
But since I don't speak PIR or anything, it basically consisted of a) frantically write tree code for a few days, and b) realise that Perl6 (at least in its Rakudo form) wasn't up to doing what I wanted yet 09:06
:)
What I'd like is to be able to get my hands on the tree of something that's been read in by a grammar 09:07
(could be XML, but could be something else; I don't mind at the moment :) )
azawawi fixing a nasty bug with firefox unload handler
wayland76 Everything else I want to do is pretty much waiting on the tree thing, which is waiting on operator overloading (and possibly macros, but I'm not sure of that) 09:09
Basically, I have a number of different objects descended from a base object, and I want a different one to be instantiated depending on the parameters passed to the "new" routine 09:10
azawawi i havent tried any of tree grammar stuff yet...
wayland76 The only way I could think of to implement it was in a similar way to the Perl5 DBI/DBD split
moritz_ that sounds a lot like the "factory" model 09:11
lambdabot moritz_: You have 2 new messages. '/msg lambdabot @messages' to read them.
wayland76 and I think that might need macros
moritz_ @massages
lambdabot azawawi_ said 22h 20m 57s ago: i added the js tree viewer that we talked about yesterday.
wayland76 said 8h 35m 34s ago: Thanks for the article!
wayland76 I assume you mean the factory pattern, but I'm not much up on patterns :)
moritz_ neither am I 09:13
wayland76 I've done similar things to this (ie. DBI/DBD split) before, and what I needed was an eval... 09:15
which is why I think I might need macros
Oh, moritz_ thanks not only for the recent summary article (which was what I was thanking you for above), but also the XML grammar one; I was about to try to write an XML grammar until I found your article :) 09:16
moritz_ you're welocme ;) 09:17
wayland76 moritz_: I don't suppose you know how to get at the internals of trees that come from grammars in rakudo, do you? 09:18
Or even what I'd read to find out?
moritz_ you mean introspecting grammars? no idea... 09:19
and I don't think they are trees, but I think they are a collection of subroutines compiled to PIR
wayland76 Not quite. Say you have an XML grammar, and you run it on an XML fragment (say <xml><foo/></xml>), that should generate a tree of the XML document 09:20
or wait... 09:21
moritz_ that's iin $/
wayland76 Ok 09:22
moritz_ perlcabal.org/syn/S05.html#Return_v...om_matches
lambdabot Title: S05 09:23
wayland76 Hmm. But that appears to be a string that was matched; I was hoping for a tree that was created :) 09:25
[I'll be busy for maybe 45 minutes, but I'll be back :)] 09:26
moritz_ wayland76: you can use that thing as a hash or array to access it as a tree 09:29
09:39 alanhaggai left 09:47 zamolxes joined 09:50 alanhaggai joined 09:54 penk left 10:05 kanru left 10:06 kanru joined, kanru left, kanru joined 10:12 aindilis left, aindilis joined 10:39 zamolxes_ joined, zamolxes left
wayland76 Wonderful! $M.keys() shows "xml". But $M{xml}.keys complains :) 10:46
"Could not find non-existent sub xml"
Oops, that doesn't make sense. I added an XML document stored in $s and the line my $M := $s ~~ XML::TOP; to the end of your XML example 10:58
so $M should be the match item, which I'm trying to treat as a hash, but I guess I need to do a bit more reading of the Data Structures stuff :)
11:01 azawawi left
wayland76 Hmm, I think I've overcome that problem 11:06
But $M<xml>.kv() gives some strange output :)
11:06 Bzek joined 11:18 Bzek_ joined
wayland76 ...ok, no it doesn't. It just surprised me by concatenating all the keys together :) 11:19
Ok, I think I've got the hang of it now. But it's not exactly my idea of great :) 11:23
11:29 ruoso joined 11:30 Bzek left 11:32 masak joined
pasteling "masak" at 130.238.45.242 pasted "I'm doing networking in Perl 6, should I follow this advice from perldoc perlop?" (13 lines, 863B) at sial.org/pbot/32768 11:37
wayland76 I'd say yes, if possible 11:40
Basically, read the spec for whatever protocol you're implementing...
...and then emit whatever characters it says 11:41
ruoso Hello!
wayland76 (I know about networking, but not a lot about Perl 6)
ruoso: hi! :)
11:44 ZuLuuuuuu joined 11:48 [particle] left 11:51 [particle] joined 11:55 cosimo left
pugs_svn r22692 | ruoso++ | [smop] makes s1p_multi test aware of lexically-defined multi variants 11:58
masak wayland76: I should be more specific, I guess. In Perl 5, one is adviced not to use "\n" for networking because it might mean the wrong thing on certain platforms. does the same advice hold for Perl 6? 12:02
ruoso masak, yes, I presume 12:03
masak ok.
12:03 Lorn joined
masak some rewrites in November required then. :) 12:04
ruoso masak, most runtime stuff should be the same as p5, unless stated otherwise
masak I know.
moritz_ thinks that n should be fine
masak moritz_: on what do you base that?
I mean, given the advice in perldoc perlop
moritz_ and that the IO handles know how to convert that to whatever appropriate
masak g'aah!
but it's the conversion that's the problem. 12:05
moritz_ masak: in Perl 5 a string is a list of bytes. In Perl 6 it's a list characters.
ruoso moritz_, yes... and that's the reason it's not acceptable
;)
in a network protocol you want to know exactly what is being sent
moritz_ say() and print() need to handle that as well, somehow
or the underlying IO object
(except that no implementation so far cares about stuff like that)
ruoso moritz_, it basically means that in the end, the string needs to be translated to some buf 12:06
I think there are additional constraints (besides encoding) that rule this process
moritz_ aye
(like normalization form)
ruoso moritz_, so you mean that there would be a "network normalization form" that would make "\n" always mean the same thing independent of the arch or any other constraints? 12:07
in that specific IO object, I mean
moritz_ ruoso: that too. I was more referring to the Unicode normalization forms, though 12:08
ruoso moritz_, yaeh... that was the part of "additional constraints" 12:09
besides encoding
I should say "additional traits" probably
moritz_ ;)
ruoso I wonder how to make that have a good performance 12:12
moritz_ do perl 5 IO layers have "good performance"? 12:13
masak still feels he'd better write a literal newline character instead of "n" when doing networking
just to be safe.
12:13 explorer joined
masak it might also actually be more clear to the programmer what that means. 12:14
especially one who has read that paragraph in perldoc perlop
ruoso @tell pmurias how hard you think it would be to make a signature compiler that creates an AdhocSignature? 12:17
lambdabot Consider it noted.
ruoso @tell pmurias I'm considering using the syntax "%mildew postcircumfix:<( )> ($self: $capture)" in the RI DSL 12:18
lambdabot Consider it noted.
12:23 Limbic_Region joined 12:26 gr1d joined 12:29 abra joined
pugs_svn r22693 | ruoso++ | [smop] proposed implementation of $multi.() in Perl 6. Needs modification of the RI DSL 12:29
ruoso @tell pmurias, take a look at smop/src/s1p_multi.ri 12:32
lambdabot Consider it noted.
12:33 sri_work left 12:41 abra left 12:43 ZuLuuuuuu left
ruoso wonders if anyone is aware of www.perlfoundation.org/perl6/index....tionformat 12:54
lambdabot Title: DistributionFormat / Perl 6
12:58 alanhaggai left 13:00 ashizawa left 13:04 borondil joined
wayland76 My opinion on that is that we shouldn't limit ourselves to just Perl, but also support other Parrot-based languages in C6PAN (since if I understand correctly, we can change languages mid-file anyway :) ) 13:05
ruoso wayland76, well... that's one of the goals in the proposed format 13:10
wayland76, see the "Basic Source Package Layout" section
13:11 borondil left 13:12 smg left 13:15 xiaoyafeng joined 13:16 jhorwitz joined 13:18 pedrob joined 13:25 Limbic_Region left 13:31 gr1d left 13:32 gr1d joined 13:43 kst left 13:51 hercynium_ left 14:02 schmalbe joined
ruoso just realized that for multis and onlys to be interchangeable, every Code must implement .variants(), even if returning a list of itself 14:04
14:06 abra joined 14:07 pmurias joined
pmurias ruoso: why not do the multi purely in mildew? 14:08
lambdabot pmurias: You have 4 new messages. '/msg lambdabot @messages' to read them.
pmurias @messages
lambdabot mncharity said 6d 20h 5m 51s ago: re mildew as duplication (last night), I was wrong. eg, elf doesn'
azawawi said 5h 53m 42s ago: i attached the full output along with the summary in sial.org/pbot/32762 and sial.org/pbot/32763
ruoso said 1h 51m 4s ago: how hard you think it would be to make a signature compiler that creates an AdhocSignature?
ruoso said 1h 50m 24s ago: I'm considering using the syntax "%mildew postcircumfix:<( )> ($self: $capture)" in the RI DSL
ruoso pmurias, hi 14:09
pmurias ruoso: hi
ruoso pmurias, well... having it entirely in mildew is not a bad idea at all... 14:10
pmurias &
14:10 pmurias left
ruoso @tell pmurias but I was considering this lowlevel implementation not using p6opaque, because a later high-level implementation should replace it at some point... 14:12
lambdabot Consider it noted.
14:13 TJCRI joined
ruoso @tell pmurias because the high-level MultiContainer type will be inside the standard object hierarchy, which means it depends on Object being already there... the low-level types should solve that circularity 14:13
14:13 pedrob left
lambdabot Consider it noted. 14:13
ruoso but maybe this circularity is not really a problem... considering all lookups are late, maybe we just need to have a multi-stage initialization in src-s1p 14:16
14:16 alanhaggai joined
ruoso 1 - prototype declaration, 2 - adding methods (and I think that's all) 14:17
the solution probably resides in manipulating the p6opaque directly using the REPR api in src-s1p instead of using the MOP 14:18
for the declaration I mean, later usage would always go through the MOP 14:20
if we avoid using the MOP in src-s1p declaration, we can even have a single-stage loading of all types in src-s1p without causing any circularity 14:21
avoid using the MOP and doing late lookup of all types 14:22
actually that would mean that we should stop writing anything not in Perl 6 14:23
(for SMOP, at least)
because at the time that any of those types would be used, all methods would already be declared... 14:24
and all types as well...
and that's the type system bootstrap
:D
after that happens, all declarations go through the MOP 14:25
that means green light for implementing all built-in types in Perl 6 and just trust that it will work :) 14:27
14:27 adc_Penner joined 14:29 eternaleye_ left 14:38 jan_ left 14:42 smg joined 14:49 silug joined 14:56 just_ joined 14:58 viklund left 15:02 xiaoyafeng left 15:05 adc_Penner left 15:09 adc_Penner joined 15:12 lizsac joined
lizsac transexual perhaps 15:12
masak lizsac: no, just cross-platform and language-nonspecific :) 15:13
lizsac i thought perl was english
masak lizsac: well, most of the keywords are in English 15:14
but by "language" I meant programming language
lizsac i thought you was talking about perl 15:15
i was talking about some chick in #perl
masak I was.
lizsac or maybe it was a dude
i'm not sure ..
masak lizsac: it wasn't very clear you was.
anyway, this is #perl6, not #perl
lizsac i was assuming everyone from #perl was in here 15:16
masak why did you assume that? :)
lizsac it's the same old perl stuff right?
so what's new in 6?
masak no...
if only every perl user knew about Perl 6, that would be nice.
lizsac: I'm glad you ask. :)
a few things, actually.
spec.pugscode.org/ 15:17
lizsac will i still be able to use my old perl scripts with perl6's interpreter?
masak lizsac: you will be able to run your Perl 5 scripts on Parrot, yes
PerlJam lizsac: dev.perl.org/perl6/faq.html
lambdabot Title: Perl 6 FAQ - perl6
masak don't know if Rakudo Perl 6 will ever recognize and run Perl 5.
[particle] it's not a near-term goal for rakudo, anyway 15:19
lizsac i'm kinda glad i don't know perl that well 15:20
see i'm not really a programmer but i've played around with perl for the past 10 years or so 15:21
lately i've been getting more into scripting though
using perl
but thinking maybe i should be using ruby or python
well actually i should be using everything 15:22
masak lizsac: all I can say is Perl 6 is really worth checking out
lizsac tosses some haskell into the basket
masak lizsac: try downloading Parrot and running Rakudo
lizsac well i'm more concerned about being correct and doing things the right way if i can 15:23
so that way my programmer friends will stop making fun of me
PerlJam lizsac: If given the choice between ruby and python today, I'd go with ruby.
ruby has a very perlish feel
lizsac yeah i've heard all the testimonials 15:24
read all the perl vs ruby vs pythonn flamewar blogs
i saw a hardcore perl programmer turn ruby
he stood up from his terminal one day
all foaming at the mouth
wouldn't stop talking about ruby 15:25
rewrote all his scripts in ruby like overnight
this was back in 2001
hahah ruby was just coming out or something
was really big in japan
i don't really see a debian perl6 package ... 15:27
:)
PerlJam I seem to recall that there is a debian parrot package and since perl6 comes with parrot for now ... 15:28
[particle] note that perl6 packages are out of date within a day of release 15:29
lizsac i guess i could open up the apt a little bit
bleh
[particle] that is, if you want the newest features 15:30
lizsac maybe i should just mess around in a dir from source
masak lizsac: language flamewars are only interesting to a certain point. :)
lizsac instead of bringin in packages in the system
masak lizsac: if you ask me, you might just as well get Parrot by svn
[particle] yes, svn is best for parrot/rakudo 15:31
PerlJam [particle]: actually, I think git is ;)
lizsac yeah from the examples perl6 looks interesting 15:32
masak lizsac: it is interesting. I use it every day, and I've never been happier. 15:33
lizsac ruby/python like stuff
whatever you want to call it
structure
elegance
PerlJam perl 6 stuff
lizsac heheh
masak programming stuff
PerlJam lizsac: if you aren't really a programmer, there are tons of features you may not really appreciate.
lizsac well 15:34
15:34 smg left
lizsac probably 15:34
heh advanced to me is hash of hashes
15:34 jan_ joined
lizsac i do a lot of web scraping and dbi stuff 15:34
parsing html and xml
PerlJam regex syntax/semantic revamp and improved object model are the two biggies IMHO
so, the regex stuff would definitely be of interest to you 15:35
masak lizsac: Perl 6 parsing is wonderful.
and much of it works in Rakudo today.
lizsac i try to stay away from using regex but i do use it from time to time when i can't figure anything else out
anyways like i sorta said before i'm getting more into the scripting/programming 15:36
i've spent a consideral amount of time in the last month just tinkering around with perl 15:37
more so than any other time in the past it seems like
i just don't want to end up in the gutter like the rest of those perl programmers 15:38
15:41 just_ left
PerlJam "in the gutter"? 15:41
lizsac one of the things i love about perl is all the modules
does perl6 have any modules yet?
i don't see any modules ... 15:42
masak lizsac: there are modules.
and classes, and roles...
lizsac core modules, or cpan stuff? 15:43
where?
masak lizsac: also, I too object to being metaphorically placed in the gutter :)
lizsac doh
found em
masak I'm a Perl programmer.
lizsac on cpan even
masak lizsac: you probably found the modules in the Perl6:: namespace
lizsac well i didn't say all perl programmers were in the gutter 15:44
15:44 pedrob joined
masak those are really for Perl 5, for simulating Perl 6 behaviours 15:44
PerlJam lizsac: the Perl6 namespace on CPAN are for Perl 5 modules that implement perl 6 stuff (for perl 5)
lizsac ohh
so
wtf
masak lizsac: I know many Perl programmers, none of which are in gutters.
PerlJam Though, there really should be an alias from Perl6::OOP to Moose :-)
masak aye :) 15:45
lizsac: most of Perl 6 development is off-CPAN right now
lizsac will i be able to use perl6 for anything?
masak lizsac: yes.
lizsac heh
PerlJam lizsac: That really depends on you more than anything else
lizsac DBI
HTML::TableExtract
masak lizsac: we're a group who are writing a wiki engine in Perl 6 as we speak. 15:46
lizsac XML::*
i use these modules daily
i need them to do anything
though i could use perl6 to massage some text files i have laying around
PerlJam lizsac: if you're comfortable with that, you should continue doing it. Perl 6 won't be in a state for you to do comparable things with comparable ease for a little while yet. 15:47
masak we expect to be able to use Perl 5 modules from Perl 6 eventually. not quite there yet, though.
lizsac: with that said, be on the lookout for Perl 6. it's worth waiting for!
lizsac well i want to check it out anyways i guess
PerlJam lizsac: you could have a go at writing a XML module for perl 6 :)
lizsac you say svn is the best way to get it?
i'm currently working on this script to find duplicates in a hash of hashes 15:48
not complete duplicates but partial
masak lizsac: yes, I'd say svn is the best way to get it. 15:49
lizsac and not disgarding the dupes but reporting on them
kinda complicated for me
masak lizsac: is there a way to map partial duplicates into the same representation? 15:50
15:51 pedrob left
lizsac i'm trying to find it on pastebin 15:51
15:52 hercynium_ joined 15:53 ejs left, hercynium_ left 15:54 justatheory joined
lizsac pastebin.com/m494f5277 15:55
buubot lizsac: The paste m494f5277 has been copied to erxz.com/pb/12884
lizsac that's how i load the hashes up anyways
i managed to do that without looking at anything which is amazing
so i load up the hash of hashes and it's all good in the dumper 15:56
now i just need to figure out how i'm going to roll through it 15:57
15:57 hercynium left
lizsac i was thinking of finding the same last_name,first_name,phone elements and if the address matches a little bit then keep the one with apt in it 15:58
and is that a good way of setting up a hash of hashes? 15:59
masak this is not really the right forum for discussing Perl 5 scripts. 16:00
lizsac ok plz hold i'll install the perl6
masak even though I must admit that it's tempting in this case...
lizsac heh 16:01
tempting?
masak please refer to #perl on irc.perl.org for Perl 5-specific questions
lizsac: yes, I think I would have had a comment or two
lizsac irc.perl.org?
masak yes, that server. they host a big #perl channel
lizsac is that freenode?
BinGOs masak: I think you might have that wrong. 16:02
masak no, it's because it's not freenode that I specified it.
lizsac heh
masak BinGOs: possibly. have what wrong?
lizsac gettin me the hell outta here
well masak it's not really perl5 specific is it?
masak yes.
lizsac i mean the hash would be created the same way in perl6 wouldn't it?
masak it's a Perl 5 script.
BinGOs The #perl on irc.perl.org is a den of depravity. 16:03
masak BinGOs: that's true too
BinGOs: but that doesn't mean that there aren't good people there who can give real advice
BinGOs #perl on freenode is probably the best place and this gentleman is currently banned from there.
masak oh.
too bad.
lizsac sssh!
BinGOs and the #perl on efnet
lizsac i would never .. 16:04
the hate is ever present on all the networks!
masak hate?
lizsac yeah i guess 16:05
hating on poor lizsac
BinGOs: are you on efnet too? 16:06
16:06 jfredett left
lizsac Irssi: Unable to connect server irc.perl.org port 6666 [Connection refused] 16:07
16:12 masak left 16:22 Exodist joined 16:32 zamolxes_ left
[particle] lizsac: try 6667 16:41
lizsac ohh i did 16:42
err rather 16:43
i connected to eldwist.darkuncle.net
which was what irc.perl.org resolved to when i pinged it 16:44
16:49 Bzek_ left
lizsac pretty dead in there 16:56
pugs_svn r22694 | lwall++ | [perl6/Makefile] remove leading indentation to save a quarter second on every STD startup 16:59
[particle] yikes, soon you'll be removing semicolons and return statements
16:59 pbuetow joined 17:00 justatheory left
[particle] yes, changing { return $foo; } to { $foo } can really save you cpu time in perl 5 17:00
lizsac so why not just use python 17:02
[particle] because it's not perl 6 17:03
17:04 smg joined
lizsac perl 6 is just the bestest? 17:07
in the whole underverse
i was reading how you can shorten the most used operators 17:08
where you can call a method with .
instead of => 17:09
err ->
i think i saw that in some of the examples
17:10 tomyan left
[particle] yes 17:10
there's a nice new idiom for creating an object: my SomeClass $x .= new; 17:11
xinming lizsac: perl6 is definitely the best of best programming language on the earth. :-)
[particle] where .= is 'inplace methodcall' op 17:12
lizsac That aside... I do not have too much faith in Perl6 anyway. It has become too complex, too esoteric... And too vaporware :-(
quote from blogcrap
[particle] uninformed opinion
PerlJam perl 6 is fairly complex though. 17:13
[particle] p6 is less esoteric than p5, with fewer memorized exceptions
PerlJam It's controlled complexity
xinming lizsac: don't listen to that, read the synopsis, You'll know how advance perl 6 is. :-)
PerlJam or perhaps structured complexity
[particle] you only need to use the subset of p6 you are comfortable with, it's quite approachable piecemeal 17:14
xinming PerlJam: No matter how complex, some one will make it. What I doubt for now is, perl 6 loses it's focus, and some might switch to other language, and perl 6 will become a theoretical programming language. No other language can defeat it. But no one implement it. 17:16
lizsac i want to install it but don't know where to start
i've never used svn before
xinming lizsac: hmm, Just do 'svn co svn.pugscode.org/pugs/' 17:17
17:17 justatheory joined
lizsac i don't have svn 17:17
trying to figure out which pkg to install to get it
[particle] sudo apt-get install subversion
xinming lizsac: But you have to do compilation your self for pugs
lizsac ahh subversion
xinming lizsac: what distribution you use? 17:18
lizsac debian
xinming then, It's easy to install
17:18 pedrob joined
PerlJam xinming: Yes, not having an implmentation that's ready for public consumption is a bit of a problem. 17:18
17:21 araujo left
lizsac wtf is pugs 17:21
xinming lizsac: Ok, clarification begins, Perl 6 is a "book", Pugs is a example in real. 17:22
lizsac: perl 6 is just specification, and pugs is a current one of the implementations for perl 6.
PerlJam lizsac: pugs is an implementation of Perl 6 written in Haskell.
lizsac svn: REPORT of '/pugs/!svn/vcc/default': Could not read chunk size: connection was closed by server (svn.pugscode.org)
lambdabot Title: pugs - Revision 22694: / 17:23
lizsac is that normal?
xinming lizsac: try again?
PerlJam lizsac: There are 3 (or more) other implementations of Perl 6
lizsac implementations of perl 6 ...
xinming lizsac: Did you ever read synopsis? 17:24
lizsac which one
PerlJam lizsac: have you every heard of IronPython, Jython, CPython, etc? Those are all implementations of the programming language called "python"
xinming dev.perl.org/perl6/doc/synopsis.html <-- If you are free, you really should read them as much as you can. 17:25
lambdabot Title: Synopses - perl6
lizsac i've been wanting to get into haskell
yeah i didn't know the whole thing was a synopses 17:26
i was reading individual synopses 17:27
err synopsis
xinming lizsac: synopsis covered most of basic thing for perl 6.
lizsac ok my pugs is done 17:28
xinming lizsac: And It's really an excited reading when looking at what perl 6 will be like. :-) 17:29
lizsac: hmm, do you have ghc installed?
17:29 armagad joined
lizsac haskell compiler? 17:29
xinming hmm, yes, do 'sudo apt-get install ghc6'
[particle] lizsac: also, if you're interested in parrot and rakudo, see www.parrotcode.org/docs/gettingstarted.html 17:30
lambdabot Title: Parrot Developer FAQ - parrotcode
xinming sorry, I am now in fedora, some thing might not be so accruate.
But read the INSTALL in pugs repository helps 17:31
lizsac so parrot isn't pugs i take it
heh
[particle] pugs is a perl 6 implementation written in haskell 17:33
parrot is a virtual machine written in c, and rakudo is a perl 6 implementation written for parrot
lizsac i can build an embedded parrot interpretor in pugs 17:34
or some shit
[particle] no, that's bitrotten i'm afraid
17:36 Lunchy joined
lizsac lucky i'm in lenny i guess 17:37
what it's really not telling me is how i specify where to install it
doh it's normal i was getting all caught up in the cabal crap 17:39
XXX NOTE!!!!!!!! 17:40
PREFIX doesn't actually work right now. So ignore what I just said. But if
it did work, that's how you would do it.
17:46 pmurias joined
lizsac this is an amazing pile of crapola 17:46
you guys are hardcore
PerlJam lizsac: you must be referring to pugs. 17:47
lizsac yes
PerlJam many of us no longer use pugs in favor of rakudo
lizsac bah!
PerlJam (or some other implementation of choice)
lizsac but he just
you
ruoso hi pmurias, you're back :D 17:48
lizsac bastard
i take it xinming is chinese
ruoso lizsac, but pugs is still a very interesting playground for those discovering Perl 6
lizsac, it's still the most feature-full implementation (I think) 17:49
lizsac well only thing i can think is good about it that i might play with haskell too
PerlJam ruoso: I don't think so anymore. 17:50
lizsac heh
why not?
PerlJam the down side of pugs too is that it has some features that aren't part of perl 6
lizsac i ask in the middle of my pugs build
pmurias ruoso: yes i'm back
lambdabot pmurias: You have 2 new messages. '/msg lambdabot @messages' to read them.
pmurias @messages
lambdabot ruoso said 3h 38m 32s ago: but I was considering this lowlevel implementation not using p6opaque, because a later high-level implementation should replace it at some point...
ruoso said 3h 37m 32s ago: because the high-level MultiContainer type will be inside the standard object hierarchy, which means it depends on Object being already there... the low-level types should
solve that circularity
PerlJam lizsac: rakudo does almost everything
lizsac maybe i will install that too 17:52
with the ruby rails and python
and whatever else i can fit on my hard drive
ruoso pmurias, please also backlog... I went through some important insights after I sent you this messages
pmurias ruoso: P6Meta could be tought how to assimilate PurePrototypeHow objects
ruoso pmurias, in the end I realized that the "s1p" compiler should use the REPR API directly to solve the circularity 17:53
pmurias, so we can "declare" all builtin types that way
and it will just work
because of late lookup 17:54
pmurias ruoso: we could teach P6Meta how to "assimilate" PurePrototypeHOW classes 17:55
i think we shouldn't have multiple p6 compilers
ruoso pmurias, but that's the 1st stage compiler
17:55 explorer left
ruoso that one we're going to need anyway 17:55
to bootstrap the type system
pmurias why does it need to be different? 17:56
ruoso because it needs to get the types into the way they should look like 17:57
even if doing it in a non-standard wayt
pmurias it should do it in the standard way
ruoso it doesn't need to
it's a special compiler anyway 17:58
it will build C files that comply to a "prelude plugin API" of some sort
pmurias i still don't understand why does it need to be special in any way 17:59
ruoso because this are the built-in types... you're compiling the types that are presumed in every other compilation
pmurias builtin-in types != native types 18:00
ruoso sure... but a Hash is not a native type, for instance
nor is an Array
or even a Str
or an Int
pmurias i'm against the idea of having "special" anything when it's not needed 18:01
avar Perl 6 is a dialect of scheme :)
ruoso ok, let me approach it other way...
avar Who's working on the elf CL stuff again?
ruoso pmurias, please explain what you have in mind...
pmurias avar: mncharity
ruoso: what i mean that the stuff in the Prelude isn't better in anyway if the user what's to use his own custom Array he should be able to 18:02
ruoso pmurias, you mean overwriting the Prelude... 18:03
pmurias or extending it
ruoso pmurias, that's not a problem, specially after the built-in type was defined
the issue here is not about making the types special 18:04
but it's the exact opposite
how to make then regular
s/then/them\
the idea of a different compiler to bring the built-in types up
is so that in the end of the initialization, you can't tell that they were initialized by a different process
because they will look exactly the same 18:05
pmurias ruoso: do you have an example which needs a different compiler
18:06 [particle] left
pmurias ? 18:06
18:06 [particle] joined
ruoso pmurias, using the MOP to build the built-in types will require features from the built-in types... 18:07
pmurias, using the REPR API directly avoids that
and when you finally needs to use the MOP, the entire prelude will already be loaded
and the type system bootstrapped 18:08
so the features from the prelude will be there
pmurias ruoso: we have PurePrototypeHOW don't we?
[particle] ...MOP on aisle two...
ruoso pmurias, the only class that will use that is P6Meta
pmurias Hash and Array could use that 18:09
ruoso pmurias, no, they can't... because Hash isa Object 18:10
and Object uses P6Meta
pmurias and we can then teach P6Meta to "assimilate" PurePrototypHOW classes
ruoso what do you mean by assimilate>
pmurias change the classe's HOW to itself
s/itself/instance of itself/ 18:11
ruoso the problem is that PurePrototypeHOW will require Hash to have *all* methods in itself
instead of inheriting them from Object
pmurias PurePrototypeHOW uses S1P::Hash
ruoso it's not just a matter of changing the HOW
pmurias, not really... PurePrototypeHOW uses $foo.^!methods 18:12
which, in the case of p6opaque, is a S1P::Hash
but it doesn't need to be
pmurias during bootstrap it is ;)
ruoso I think I lost the point 18:13
s/the/your/
what do you mean...
rephrasing.... how does the fact that PurePrototypeHow uses S1P::Hash changes the fact that it would require installing new, CREATE, BUILDALL into Hash also 18:14
instead of just inheriting from Object
pmurias what i mean after P6Meta is loaded (using PurePrototypeHOW where nessesary) we would replace all classes using PurePrototypeHOW with ones which use P6Meta
s/using/which use/ 18:15
18:15 pedrob left
ruoso pmurias, if you try to get lower-level with that approach you'll see that you have a circularity problem 18:15
(by lower-level I mean actual code)
pmurias metamodels are supposed to be circular 18:16
ruoso in theory, yes
pmurias P6Meta's .HOW is supposed to be a P6Meta instance
justatheory coughs
ruoso but in practice, it needs to break the circularity somehow
18:17 armagad left
ruoso that's where 1st stage compilers comes in 18:17
pmurias you can do it by handcoding the HOW
ruoso pmurias, the problem is that the HOW itself depends on the other types that aren't already there
pmurias first you create P6Meta metainstance then you define a .HOW method on it which returns it 18:18
ruoso hm? 18:19
I don't think I see what you mean...
P6Meta is a regular class, that happens to use a different HOW
pmurias the kp6 MOP was circular
ruoso pmurias, and the circularity was broken by defining objects directly in p5 18:20
building the same data structure the rest of the runtime would expect
pmurias yes...
ruoso that's what I plan to do
pmurias but we don't need a special compiler for that 18:21
ruoso having the s1p compiler building the data structure as the rest of the runtime will expect them to be
pmurias all the deep magic can be expressed in normal p6
ruoso how do you call add_method in a class that needs to call add_method to be defined?
pmurias writes code to to that... 18:22
ruoso pmurias, you mean you're doing it now? 18:23
on the other hand, if the s1p compiler uses "my $class = ::p6opaque.CREATE(); $class.^!methods.<new> = method (...) {...}" 18:24
the methods will be there without the need to call add_method, and you will be able to call add_method to create new classes
pmurias why can we write the above code by hand 18:25
?
ruoso you mean "why a compiler if we can write the above code by hand"?
pmurias yes 18:26
18:26 meppl joined
ruoso well... just to keep the files in src-s1p written in plain Perl 6 18:26
I agree it's a perfectionism of mien
but we have to agree it would be pretty
:P
pmurias on the syntactic level yes ;) 18:27
ruoso I think you see what I mean now :)
pmurias, the insight I had was that if we compile all the built-in types in terms of REPR manipulation, it will break the circularity and we're bootstrapped 18:29
(the type system, at least, which is an important step before compiler bootstrap)
pmurias but having a seperate compiler mode is a bit complex 18:31
ruoso maybe a Perl 6 preprocessor then ;)
that turn plain Perl 6 into s1p Perl 6
pmurias what we could do is create a part of P6Meta load Hash,Array and then load the rest of P6Meta
i'm not sure obscuring the complexity of what's happening is a good thing 18:32
ruoso it's not obscuring, just automating
because the "my $class = ::p6opaque.CREATE()" part will be very repetitive... 18:33
as well as every method definition and so on
pmurias after you hand bootstrap add_method and a couple of things you can write normalish p6
ruoso sees a lot of circular-dependencies ahead...
pmurias ::MyClass = ::p6opaque.CREATE() vs class MyClass? 18:34
it's not more boilerplate then a C++ coder uses casually ;)
if it turn out too horrible i'll change my mind and add support to mildew for it ;) 18:35
ruoso heh... 18:36
pmurias * turns
ruoso wonders if that's the reason people hates C++ so hard
pmurias, ohkay
[particle] s/hard/much/ 18:37
ruoso pmurias, but I still think doing the "compiler mode" would be less work
pmurias so the plan is not to use PurePrototypeHOW? 18:38
ruoso pmurias, PurePrototypeHOW is only the HOW for P6Meta
so that p6meta can be a p6opaque
otherwise it would need to be a low-level type 18:39
18:39 zamolxes joined
pmurias how does that relate to Hash? 18:40
won't it be a p6opaque
ruoso pmurias, yes, but it will also be a subclass of Object
which means it's sane to use the same HOW as Object 18:41
ruoso remembers that we have a prototype based implementation in SMOP so far
(prototype by delegation, not pure-prototype)
pmurias the S1P::Hash should die 18:42
ruoso not so fast... p6opaque uses it
but S1P::Hash will be hidden in the gore lowlevel details
it won't be visible to the regular user 18:43
pmurias ok it can live a relatively obscure existence as p6opaque's minion
ruoso and lexical scope's minion too
but I think that's pretty much everyone that uses it 18:44
pmurias we need signatures in smop before we can proceed to implementing P6Meta 18:46
ruoso we can live with AdhocSignature, can't we?
pmurias barely
ruoso for P6Meta, at least
or at least until we bootstrap the type system and go replacing backwards
unless of course we design Signature 18:47
and build the object from scratch without using its methods
that's indeed an "bootstrap-like option"
pmurias theoreticly we could build :(*@_,*%_) using the default block signature 18:49
and PurePrototypeHOW
AdhocSignature is not very usable from p6 because it accepts mold blocks 18:51
ruoso pmurias, I was thinking on having ":($foo, $bar)" compiled directly to AdhocSignature 18:53
AdhocSignature would not be seen in P6 code
pmurias we could use it for now 18:55
ruoso: have you looked at mildew code yet? 18:57
ruoso yeah... somewhat... 18:58
it looks like the codes that would benefit from a tree-grammar thing
pmurias it definitly would benefit from some treeish syntax sugar 18:59
it won't have any use from node matching as it should go through the whole thing 19:00
19:04 ZuLuuuuuu joined
pmurias ruoso: it would receive a generic 2x cleanup if translated to perl6 too 19:05
ruoso: anything unclear? or any suggestion for cleanup withought using custom syntax? 19:07
ruoso no... it's very straight-forward...
I think we already have some expertise in building tree-transformers in p5... :) 19:08
I think the first I recall started in 2004 or something like that 19:09
19:09 schmalbe left
ruoso (Perl 6 related tree-transformers implemented in Perl 5, I mean) 19:10
19:17 xinming left 19:19 pedrob joined 19:24 xinming joined 19:26 ZuLuuuuuu left 19:36 eternaleye joined, sri_work joined
ruoso pmurias, btw... you noticed the memory issues I pointed? it's related to proto.ri 19:40
pmurias yes 19:41
checking once more
ruoso: should make test use valgrind by default? 19:42
ruoso pmurias, that would be ok
pmurias it would take twice as long
ruoso it's fairly quick now 19:43
pmurias anyway the mildew and perl6 eventually will take over soon 19:44
* test suits
ruoso that even makes me wonder if we should make a boundary in "libsmop" to where it is now 19:45
and have src-s1p as if it were a different project 19:46
pmurias libsmop needs a lot of cleanup
ruoso indeed 19:47
removing slime is an important step
19:48 araujo joined 19:52 abra left 19:53 zamolxes left, justatheory left
ruoso pmurias, in fact... I just realized smop core grew over what was needed... it was important to make a proof of concept, but even some of the s1p_* types doesn't really need to be there.. 19:54
pmurias perl6: (1,2,3) >>+<< (1,2,3,4,5,6,7)
p6eval pugs: OUTPUT[/home/evalenv/pugs/pugs: error while loading shared libraries: libsmop.so: cannot open shared object file: No such file or directory␤] 19:55
..rakudo 31963: OUTPUT[Statement not terminated properly at line 1, near ">>+<< (1,2"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
..elf 22694: OUTPUT[Out of memory!␤]
pmurias i killed pugs :(
ruoso heh
pmurias is there a way to tell the hyper op to return a list which is the length of the shorter one? 19:57
pugs_svn r22695 | pmurias++ | [mildew] spits m0ld when --exec is not present 19:59
pmurias ruoso: do you think giving mildew a pugs-like interface would make sense? 20:04
ruoso: the Invalid read seems to be SLIME releated 20:07
20:07 pedrob_ joined
pmurias as a dead SLIME Frame is accessed at native_capture 20:08
20:09 alanhaggai left 20:11 smg left
ruoso pmurias, ok... we could kill SLIME... the only thing we need is something like the SLIME free operator 20:11
pmurias, there are only two files that still use slime
(besides a lot of tests)
pmurias, but the invalid read is just a symptom of the problem 20:12
pmurias, someone is doing an improper refcnt_dec 20:13
that is causing premature destruction, where the frame is still referenced....
pmurias, the free operator could just be something that turns a register into NULL without doing a release 20:14
pmurias could we catch using an undead object?
20:14 kst joined
ruoso pmurias, that's what valgrind does 20:14
you'll catch the exact same poitn 20:15
pmurias yes
ruoso the question is who is killing the object at the wrong time? 20:16
not who is accessing the undead object
pmurias shower& 20:18
20:23 pedrob left 20:38 pmurias left 20:41 ruoso left 20:47 eternaleye left 20:49 justatheory joined 20:50 zostay joined, eternaleye joined 20:52 meppl left 20:53 meteorja1 left 20:54 eternaleye_ joined 21:01 [particle]1 joined 21:02 adc_Penner left 21:03 TJCRI left 21:08 iblechbot left 21:12 alester is now known as AndyAway, eternaleye left 21:16 eternaleye_ left 21:19 [particle] left 21:22 araujo left 21:23 mberends_ joined 21:29 Lorn left 21:36 wknight8111 joined 21:41 smg joined 21:43 aindilis left 21:48 gr1d left 21:51 hercynium joined 21:55 mberends_ left 22:14 eternaleye_ joined 22:15 araujo joined 22:17 cognominal_ joined 22:21 Limbic_Region joined 22:25 cognominal left 22:29 bsb joined 22:47 pedrob_ left
lizsac /usr/bin/ld: cannot find -lperl 22:56
collect2: ld returned 1 exit status
make: *** [pugs] Error 1
man right at the end too
i dunno what that cannot find -lperl means 22:58
i have all the perl stuffs
23:04 eternaleye_ left 23:07 aindilis joined 23:20 pcbuetow joined 23:21 pcbuetow left 23:32 pbuetow left
wayland76 lizsac: It's looking for a library called "libperl" 23:51
If "locate libperl" returns no results, then you need something else
(incidentally, I agree with pmurias_ when he said :(*@_,*%_) 23:52
:)
rakudo: for 1..3 { if $_ == 2 { next; }; say $_; } 23:59
p6eval rakudo 31963: OUTPUT[1␤3␤]
wayland76 Oh good :)
On mine, it says Could not find non-existent sub next
23:59 wknight8111 left
wayland76 So I'll eagerly await the parrot release later today :) 23:59