pugscode.org/ | Brave souls needed to fix 'make Install'! Non-brave souls should avoid it for now | sial.org/pbot/perl6
Set by mncharity on 4 June 2007.
[particle] you have access to the match object inside the closure 00:00
see t/compilers/pge/p6regex/closure.t 00:01
Coke If I'm going to much directly with the Match object, I can do that from PGE. I was hoping for something cleaner. 00:08
s/much/muck/
dduncan now starting smoke of r16641 00:13
00:20 avarab joined
Coke wanders back into #parrot. 00:23
00:23 avarab joined 00:42 weinigLap joined 00:45 amnesiac joined 00:53 nipotaway is now known as nipotan, unobe joined 00:56 unobe is now known as unobe_away, amnesiac joined 01:08 mjk joined 01:15 japhb joined 01:26 justatheory joined, agentzh joined
agentzh pugscode.org/ | sial.org/pbot/perl6 01:27
agentzh unobe++ seems to have fixed it :) 01:27
lambdabot agentzh: You have 2 new messages. '/msg lambdabot @messages' to read them.
agentzh @messages
lambdabot Aankhen`` said 22d 19h 2m 33s ago: I'm not seeing the load handler run more than once on Firefox; a profiling session shows that it runs once, calling addEvent 83 times (or more, or less, depending
on the number of smartlink snippets). Which browser did you see this behaviour under?
perlDreamer said 21d 21h 14m 18s ago: I think that the closure work is done in t/TASKS, but I'd like to double check with you since you added it. What specific things were you thinking of?
agentzh lambdabot is insane now? 01:28
yay, autosmoking is working again :) 01:29
01:50 weinigLap joined 01:53 agentzh left 01:56 REPLeffect joined 02:07 BooK joined 02:11 dolmans joined
meppl good night 02:12
02:16 sunnavy joined 02:32 audreyt_ joined 02:38 audreyt__ joined 02:47 Alias_ joined
Limbic_Region salutations audreyt 02:58
amnesiac saludaciones! 03:01
03:04 unobe_away is now known as unobe 03:25 daxim_ joined
dduncan so it looks like my smoke finished in 97 min 03:37
Limbic_Region last time I ran one - less than a week ago, it took under about 33 min 03:39
dduncan so that's the first smoke post the rename of my dbms project
my machine's almost 5 years old ... though probably one of the better ones of its time 03:40
Limbic_Region wasn't attempting to brag
what version of ghc are you using and how much memory free
dduncan don't worry about it 03:41
Limbic_Region those are usually the 2 factors that dictate how fast a smoke goes
dduncan my machine has usually over 1GB of RAM free, and it is GHC 6.6.0 on Power PC G4 dual-1Ghz, using concurrent=4
that is, the smoke is concurrent=4, on 2 cpus 03:42
I think the bottleneck is the relatively slow cpu
Limbic_Region could be 03:43
dduncan as for ram ... I found that compiling pugs tended to use a lot more than actually running pugs
and the smoke times are just for runs
back when I had 0.75GB RAM total (I now have 1.75GB), compiling eg Pugs.Parser sometimes started to use the swap ... under GHC 6.4 anyway 03:44
Limbic_Region come to think of it, I haven't profiled memory usage during smoke
dduncan I didn't do anything formal ... just observed what "top" said while it ran 03:45
Limbic_Region I have dual 1.73 Ghz with 1GB total physical memory on winbugs
and concurrent=1 because there is a bug in Parallel::ForkManager I haven't been able to track down 03:46
TimToady mine usually runs in ~30 minutes, but now it's taking 80 because something's wrong on fedora...
dduncan perhaps the cpu architecture has a role to play ... if that is a single core cpu
Limbic_Region hacked in support for concurren > 1 on Win32 using Parallel::ForkManager but it intermittently loses track of one of its forks
so I don't use it
dual core 03:47
dduncan in the older days, concurrent > 1 didn't work on mac os x even when it was supposed to ... that combined with an older ghc and/or less ram made Pugs smokes take about 5 hours on otherwise the same machine
getting the concurrent working brought it down to about 2.5 hours 03:48
and the rest may have been due to better ghc or more optimized pugs
actually, I don't think my ram amount ever affected smoke speed, just compile speed 03:49
03:50 LimbicRegion joined, bpalmer` left, LimbicRegion is now known as Limbic_Region
dduncan we now have a core-2-duo 2.1 ghz iMac in the house, so some point I'll have to try running pugs on that (I haven't yet, as its not my machine) 03:50
does anyone here think that Pugs will be next released during the month of june, or would july or later be more likely? 03:52
Limbic_Region IIRC, audreyt's plan was for the next release to be 6.28 03:53
dduncan yes
I mean that one
japhb dduncan: he's joking
Limbic_Region was getting to that
japhb :-)
Limbic_Region no I am not
japhb Limbic_Region: ... and I'm pulling your leg
Limbic_Region oh, wait 03:54
dduncan I recall that 6.28.0 was going to be the next one for awhile
Limbic_Region 6.28 could be interpreted as June 28
in any case
japhb smiles barely innocently
dduncan oh that's what you meant
Limbic_Region the major hurdle for 6.28 was the pad refactor IIRC, which went in a couple of weeks ago
japhb Limbic_Region: in all seriousness, I think we're waiting for the MO merge
Limbic_Region unfortunately, audreyt hasn't had a lot of time to devote to pugs recently
japhb Pad refactor was item 1, MO was item 2 03:55
Limbic_Region right
japhb And somewhere in the middle was the "minor" O(1) pad item, which I've been waiting on
Limbic_Region but the MO merge wasn't expected to be difficult from my understanding
dduncan anyway, for any release after june 29th, we'll want to include a copy of the GPL-3 in the licenses folder rather than or in addition to the GPL-2
Limbic_Region dduncan - 2007-06-28 is not a scheduled release date
japhb Limbic_Region: I recall something like her needing 8 hours or so to do the MO merge
Limbic_Region but it would be nice if 6.28 was released on 6.28
dduncan june 29th is the GPLv3 release date, and is scheduled 03:56
Alias_ WE'RE ALL GUNNA DIE!!! 04:04
Sorry about that, but the drama levels on this whole GPL3 thing were getting critically low
SamB Alias_: what GPL3 thing? 04:08
was there a problem with GPL2
Alias_ yeah, apparently 04:09
japhb SamB: Several things. I haven't followed it all in detail, but IIRC: some internationalization issues, changes in the patent landscape to handle, license compatibility improvements, suchlike 04:10
lidden gplv3.fsf.org/rms-why.html 04:22
lambdabot Title: Why Upgrade to GPL Version 3 — GPLv3
04:27 vel joined 04:28 vel joined 04:33 unobe is now known as unobe_away 04:47 hcchien joined 04:51 vel joined 04:55 unobe_away is now known as unobe 05:05 BooK joined 05:10 SubStack_ joined 05:12 justatheory joined 05:18 sunnavy joined 05:19 justatheory joined 05:20 justatheory joined 05:27 devogon joined 05:34 SubStack_ is now known as SubStack 05:47 Jmax joined 05:54 elmex joined 05:55 sparvu joined 05:56 kanru joined 05:57 Gothmog_ joined 06:25 Averell joined 06:26 franck__ joined 06:29 araujo joined 06:35 franck___ joined 06:42 felipe joined 07:04 aukjan|gone is now known as aukjan 07:06 dduncan left 07:09 franck__ joined 07:30 hcchien joined 07:32 riffraff joined 07:33 sunnavy_ joined
riffraff hi everyone 07:34
Tene Hi! 07:37
07:43 unobe is now known as unobe_away 07:44 renormalist joined 07:59 cognominal_ joined 08:04 rho joined 08:07 jisom joined 08:23 iblechbot joined 08:38 b_jonas joined 09:07 buetow joined 09:10 Maddingu1 is now known as Maddingue
moritz good morning ;) 09:14
09:16 BooK_ joined 09:19 trunix joined 09:28 xern joined
Tene Hmm. It's not just pugs that's segfaulting for me. Even ldd is segfaulting on this box. 09:43
oh, nevermind, that's an application segfault, not an ldd segfault. 09:46
10:07 IllvilJa joined 10:10 Southen_ joined, Southen joined, jmlin joined 10:24 sunnavy joined 10:25 rindolf joined 10:31 laye joined
meppl good morning 10:57
moritz good morning meppl ;) 10:58
11:03 mj41 joined 11:06 b_jonas joined 11:09 Aankhen`` joined
moritz did anybody fix "make install"? 11:11
11:11 trunix left
lumi 04:28 < agentzh> unobe++ seems to have fixed it :) 11:14
meppl good morning moritz 11:15
moritz lumi: thanks ;)
11:25 cognominal__ joined 11:35 the_dormant joined, pnu joined 11:41 aukjan is now known as aukjan|gone 11:47 scw joined, elmex joined 11:49 nipotan is now known as nipotaway 11:57 REPLeffect joined 12:04 chris2 joined 12:05 iblechbot joined 12:52 avarab is now known as avar 13:06 araujo joined 13:17 penk joined, penk left 13:35 isaacd joined
gaal what revision was the make install fix? svk log -l 100 doesn't show anything to suggest it; I think unobe just reported it worked for him. 13:43
moritz I don't know, but it might have a different log entry than "fixed 'make install'" ;-) 13:44
gaal I did actually read the log entries. :)
it *might* have been r15831, but only accidentally if so. 13:45
moritz is it right that my (@a, @b) = .. generates slice context for the RHS? 13:46
gaal doesn't know
13:50 REPLeffect joined 13:56 japhb joined 14:14 amnesiac joined
rindolf Hi gaal 14:42
14:44 penk joined 14:52 cognominal__ left 14:55 cognominal joined
TimToady moritz: no, ()= generates list context 14:58
and the first @ would slurp up all the arguments as in P5
moritz TimToady: so how would I achieve something like my (@a, @b) = my_function(); sub my_function { return @a, @b } ? 14:59
TimToady and a ; would likely terminate the statement anywa
use binding
not assignment
moritz no way with slice context? 15:00
TimToady my ($a, $b) = @@ my_function()
or my (*@@ab) := my_function() 15:01
moritz is something like my(\@a, \@b) = @@ my_function() possible?
[particle] or my ($a, $b) = slice my_function()
moritz backslash are not references anymore, right? 15:05
so my (\@a, \@b) wouldn't do what I wanted
TimToady we've never made \ mean anything in an lvalue, though the thought is ancient. but I don't think we should encourage people to use assignment where they probably should be using binding 15:13
the closest we got to \ in assignment is the \@ prototype in Perl 5 15:14
rhr something like my :(@a is copy, @b is copy) := \(my_function()) ? 15:15
15:17 iblechbot joined
TimToady the \() around my_function is redundant; functions always return captures 15:23
unsless you want a capture of a capture...
wait, didn't see the colon
but I don't think that changes anything, it just makes the sig more explicit 15:24
and it really should be my_function's responsibility not to return the same arrays repeatedly 15:25
Aankhen`` I thought Perl 6 was going to be family-safe!
Family friendly?
It's too early for me to think coherently.
TimToady I have the advantage of never thinking coherently, so I'm used to it... 15:26
Aankhen`` I can see where that would be a major evolutionary step up.
15:28 kanru joined
Aankhen`` Hmm, properly formatted HTML mail s actually quite nice to look at. 15:29
s/s/is/
Is /<( ... )>/ == / $0 := (...) /? 15:30
TimToady no
rhr ok, I thought one or both of : and \ were probably redundant. my always takes a signature?
TimToady essentially
Aankhen`` Okey. 15:31
I shall figure out whether I asked the right question, as well as ask more, when I'm back from college and reasonably awake.
Aankhen`` wanders off.
TimToady <(...)> sets the return value of $$/, not @$/[0] 15:32
actally, <( just sets $/.from, and )> just sets $/.to, and that string is what $/ returns in scalar context by default, but you can change it with an explicit {return $this} 15:34
rhr do any of eq === eqv imply unicode normalization on strings? 15:35
TimToady it's a good question, to which I haven't got a coherent answer yet. 15:38
I think certainly eqv is defined in terms of canonicalization, so probably yes
not so sure about the others 15:39
don't want to slow everything down if we know everything was canonicalized coming in
rhr ok. expect a lot of unicode questions in the near future, I'm reading the spec in preparation for parsing UCD etc.
TimToady btw, CRLF is not a grapheme
those are both base characters in unicode
rhr I was assuming "grapheme" was a unicode "extended grapheme cluster", and they explicitly include CRLF 15:40
TimToady that would be a cluster of graphemes... 15:41
but I haven't seen that term used yet, so I must be behind the times
rhr I'm looking at 5.0
CRLF is the only instance of two base chars in an extended grapheme cluster AFAICS 15:42
but I'm not done reading the spec... 15:43
TimToady sounds like a hack
but the question is, what semantics do they imply by calling it that... 15:44
rhr yup, kinda makes sense though. I can remove it.
TimToady we have a similar hack in making \n match CRLF, but \n interpolates to a native newline
rhr I was wondering about that, S02 says it's LF 15:45
TimToady where? 15:46
I don't find "LF" or "linefeed" anywhere in the synopses 15:47
rhr S02:2352
"LINE FEED" :) 15:48
avar What do you mean by native newline? Something determined at configure time to be the \n on the system?
15:48 jedai joined
avar I'm considering the case where I build on windows and have a grammar with \n parse a unix-formatted file 15:48
TimToady hmm
avar: that should work fine 15:49
rhr if \n is logical, should we have \l to go with \r?
avar Not if the \n means the C-string "\r\n" and the rest of the grammar doesn't grok that 15:50
like token { ^^ \n $$ }
TimToady \n as a patterm match always matches all customary line endings
moritz why not just use \v
TimToady regardless of the native meaning of \n
and in windows \n doesn't mean CRLF anyway
moritz are there any vertical spaces that are not line ends?
TimToady it still means LF, and you get the CR when the text file is written out 15:51
avar So where does this kick in? At the IO level like in perl5?
moritz: Yes, vertical tabs?
moritz avar: ok, good point (I'm not very familiar with unicode)
avar it's in ascii:)
moritz so it's unicode as well ;)
avar It's very frequent in GNU source code since emacs inserts it automatically in some cases (I think) 15:52
TimToady the only machines that mix up the meaning of \n and \r are old Macs, and EBCDICish machines
and S02 is more or less ignoring them
avar Yeah, luckily diversity is dying:)
TimToady now if we could only settle on / as universal path separator... 15:53
15:54 prism joined
avar TimToady: But if you really mean that this should do the equivalent of p5 perlio that should probably be spelled out, I always thought my Str $str = "\n"; would give me the C str { '\r', '\n' } on windows and { '\n' } on *nix 15:54
or maybe it has been fixed and I just haven't read them in a while:)
rhr TimToady: so should we declare that CRLF isn't a Perl grapheme? or should we stick to some particular unicode definition of grapheme?
TimToady I need to figure out what Unicode 5.0 is up to with "grapheme clusters" 15:55
but for now, CRLF is not a grapheme 15:56
rhr www.unicode.org/reports/tr29/tr29-11.html
lambdabot Title: UAX #29: Text Boundaries
15:57 weinigLap joined
TimToady since they're talking about "user perceived boundaries", maybe that's just a minimal language level rather than a grapheme level 15:57
though if it's universal, it sounds graphemish 15:58
15:58 weinigLap joined
rhr that's not the document I was reading yesterday, and now I can't find it... 16:01
TimToady well, perhaps there's a "use cluster" level between graphemes and languages 16:03
rhr hmm. would anybody use it? how would it be different from graphs other than CRLF? 16:05
TimToady but it's really just a "default universal language", I think 16:06
since "use CharMyLanguage" overrides it
so I think we should just treat it as a generic language 16:07
when you set a language level, it doesn't undo the underlying codepoints or graphemes, so those levels are different
Note: As with the other default specifications, implementations may override (tailor) the results to meet the requirements of different environments or particular languages. 16:08
since the emphasis there is on override, not tailor, I think it's a destructive replacement of a generic language with a specific language 16:09
moritz well, the generic language is perl ;)
rhr I'm still figuring out what all is affected by changing the default language... 16:10
btw, what I was reading yesterday was p.32 of www.unicode.org/versions/Unicode5.0.0/ch03.pdf
16:11 lisppaste3 joined
TimToady okay, I see that they've made CRLF a special grapheme cluster, but an "extended grapheme cluster" is something else 16:16
I hate Unicode's naming conventions...
rhr "grapheme cluster" doesn't include control chars, extended does 16:17
TimToady grapheme cluster now include (a) CRLF
the only ramification I can think of is that under "use graphs" we can make . match CRLF as a unit 16:19
rhr right
TimToady unless we say that all files on Windows are opened by default in binary, in which case we would have to make "\n" or something else produce CRLF 16:20
but that seems wrong to me
Perl should be biased towards text files 16:21
and I think the CRLF decision of Windows should be pushed out of the language, except for the conciliatory \n matching 16:23
and now maybe . matching
this also means that \h can refuse to match CRLF while continuing to match CR! 16:24
since those are now different graphemes
and \v should match CRLF and LF but not CR 16:25
(under the default grapheme level)
rhr so are you leaning toward going with "extended grapheme cluster"? 16:26
TimToady what do you mean "going with"?
it's an allowable language
rhr define Perl grapheme as? 16:27
TimToady it's not the default
as defined on your p.32
Grapheme cluster: A maximal character sequence consisting of a grapheme base fol-
lowed by zero or more grapheme extenders or, alternatively, the sequence <CR, LF>.
CRLF is a "grapheme cluster" under use graphs 16:28
rhr right, but a lot of chars aren't included in the plain "grapheme base", so e.g. DEL isn't counted as a grapheme
TimToady but use graphs is agnostic towards "extended grapheme clusters"
it's a base character
as far as Perl is concerned 16:29
rhr Cc - Cf - Cs - Co - Cn - Zl - Zp aren't included in "grapheme base", I think that's what "extended" is about, otherwise you'd count sequences of those as 0 graphs, no? 16:31
16:32 unobe_away is now known as unobe
TimToady Perl defines a grapheme as <!M> <M>* or some such 16:33
and maybe now with CRLF mixed in 16:34
rhr ok (that's what the current .graphs does, more or less)
TimToady in which case your current \r\n test is probably okay
unobe gaal, lumi, moritz : I fixed the make install back when agentzh first mentioned it, so quite a few revisions ago 16:35
rhr but aside from spacing marks (which I don't understand) I think that's very close to "extended grapheme cluster"
unobe i just didn't have time to try it out
rhr whoops, I just reverted the CRLF stuff
unobe gaal, moritz: r16249 16:42
16:44 unobe is now known as unobe_away
moritz unobe_away: thanks 16:45
r(16248 to 16850) only modify util/smartlinks.pl 16:47
is that really involved in the build process?
16:48 rindolf joined 16:50 dwave joined 16:54 chris2 joined 17:00 bonesss joined 17:06 penk joined 17:08 amnesiac joined 17:10 larsen_ joined 17:11 Psyche^ joined 17:12 justatheory joined 17:28 Psyche^ is now known as Patterner 17:30 weinigLap joined 17:36 awwaiid joined
gaal unobe++ # r16205 :-) 17:49
clkao++ # svk desc r$upsream@ on svk 2.x 17:50
17:52 dduncan joined 18:02 penk joined 18:07 ssotka joined 18:27 thoughtpolice joined 18:28 macli joined
thoughtpolice afternoon 18:35
dduncan in about 20 minutes it will be here 18:36
thoughtpolice s'already here for me. 18:44
you people and your time zones and stuff.
rindolf Hi thoughtpolice 18:47
thoughtpolice hey rindolf 18:48
rindolf Man! I cannot figure out Eclipse.
thoughtpolice :/ just being difficult (usability)? 18:49
because that happens to me all the time
(i only use eclipse for radrails but it has issues like freezes frequently.)
rindolf thoughtpolice: Eclipse doesn't freeze. 18:50
moritz eclipse? the Java OS? *g*
rindolf thoughtpolice: not at the moment at least?
moritz: it's not an IDE - it's an operating system.
I'm trying to work on FOP.
And Eclipse is DOA.
I don't seem to have an existing Eclipse project.
18:50 ssotka joined
rindolf And the README does not mention it. 18:51
thoughtpolice hm eclipse pulls stuff like that on me all the time
rindolf And I have no idea how to import an Ant file.
thoughtpolice then again at any given time, a lot of my memory is used up
so ymmv :p
rindolf And no one on #eclipse is any help.
Someone told me "Import Project".
But there isn't anything like that.
18:53 takanori joined
sparvu hey all 18:54
rindolf Hi sparvu
thoughtpolice g'day
sparvu I have reported my problem about pugs on Solaris 10
thoughtpolice ever get your solaris build worked out?
ah
sparvu well looked a problem with ghc ditribution and a static libray wrong build
Im working with Sun and the maintainer of ghc for Solaris 10 to get this sorted out 18:55
thoughtpolice ah. at least you're getting somewhere. :)
sparvu when I will have a working pugs, Im planning to make a Solaris 10 package
Lets see
One question: Im a bit confused about parrot and pugs
So is pugs a temporary step towards parrot ? 18:56
thoughtpolice it's a method to bootstrap perl 6.
sparvu or is it to stay here even when parrot is ready ?
moritz sparvu: parrot is "Just" a virtual maschine 18:57
sparvu: and pugs is a perl 6 compiler
sparvu: so the question is "is pugs going to stay when 6-in-6 is ready?"
thoughtpolice the plan is if it's needed, once pugs milestones are 'done' it'll be rewritten in perl 6 so you have a fully bootstrapped compiler.
sparvu moritz: correct 18:58
got the point.
[particle] sparvu: there will probably be more than one implementation of perl 6
18:58 po_boy joined
[particle] sparvu: no "official" implementation 18:58
moritz everything that passes the test cases is considered to "official" 18:59
sparvu right, thanks. So we have to wait until Parrot is ready
Yeah, so it is important to get pugs running on Solaris :)
thoughtpolice parrot is already looking interesting
moritz planned to write a toy interpreter that just read the "plan $n" statements and print n times "okn", so it would pass the test suite ;)
thoughtpolice I have a build on my openbsd box now iirc
moritz: sneaky 19:00
moritz thoughtpolice: it is indeed
sparvu parrot build 100% ok on Solaris 10 x86 and SPARC
moritz cool
parrot++
sparvu pugs is a bit more triky because of ghc
moritz thoughtpolice: would have been a nice april fool joke ;)
TimToady so we'll have to put in an obfuscated test that prints 0..1 some other way...
thoughtpolice moritz: :)
19:00 lidden joined
[particle] is currently getting parrot to build on x64 19:01
sparvu curious: can you run any Perl 6 now in parrot ?
moritz TimToady: a BEGIN { $a = 2 }; plan $a; would be a good start ;)
thoughtpolice parrot is a virtual machine.
moritz sparvu: there is a perl 6 implementation in languagues/perl6/ in the parrot svn... 19:02
thoughtpolice it's only 1/2 the equation in the case of your question; the compiler is the other.
i've been meaning to give a shot to the parrot toolchain
it looks pretty interesting
moritz sparvu: so there is some kind of "6-on-parrot"
sparvu: and pugs has a parrot backend, which needs brave souls to unbreak ;) 19:03
thoughtpolice yes, most def.
moritz and iirc mp6 has an experimental PIR emitter as well
fglock++
anyway, gotta go, learing :( &
thoughtpolice later
sparvu moritz: cheers. I will try to build a parrot Solaris package for x86 and sparc
cya 19:04
moritz sparvu: btw there is #parrot in irc.perl.org
sparvu aha. Thx.
moritz & # (now for real ;)
19:11 the_dormant joined 19:17 lvh joined
lvh hi 19:17
sparvu Here you can see the original report about pugs and ghc: www.opensolaris.org/jive/thread.jsp...p;tstart=0 19:18
lambdabot Title: OpenSolaris Forums: Perl 6 on snv_55b x86 ..., tinyurl.com/2hu8oy
lvh could anyone point me to a page where the rationale is explained for moving to @foo[3] from $foo[3]?
19:18 bonesss joined
Tene lvh: one of the apocalypses, probably. 19:19
lvh: the main reason is basically "People are regularly confused by this, and it doesn't seem to offer any concrete advantage." as I recall. 19:21
spinclad lvh: ambiguity, for one: in Perl 5, if you have $foo holding an arrayref and @foo as an array, which does $foo[3] mean?
Tene spinclad: is $arrayref[0] valid? Is -> not required? 19:22
spinclad (sorry, that's a rationale, not a page)
TimToady Tene: that is correct 19:23
spinclad you may be right. i seem to recall the Perl 6 designers wanting to drop the ->/. though.
lvh spinclad: indeed, i was wondering if that was even valid
PerlJam spinclad: in perl 5 it's not a problem because you need the ->
Tene PerlJam++
TimToady $array.[0] and $array[0] are equivalent 19:24
lvh anything with a @ in front of it is an array, with a $ in front of it its a scalar. alway.s
Tene but perl5 $array[0] and $array->[0] are not equivalent.
lvh $array[0] seems strange to me
err
nvm :P
i was quoting the wrong thing
Tene lvh: also, you *can* store arrays and hashes in scalars in Perl 6.
PerlJam lvh: now the rules is a little different but still very consistent.
s/rules/rule/ 19:25
lvh $arrayref[0]
Tene ?eval my $a = 1..10; $a[0]
lvh what does that mean?
19:25 evalbot_r16637 is now known as evalbot_r16643
evalbot_r16643 \1 19:25
lvh unless arrayref is secretly an array
PerlJam lvh: in perl 6 "arrayrefs" are transparent
TimToady there are no refs in Perl 6, officially
Tene lvh: that's what I was saying. i was refuting spinclad's claim of ambiguity.
lvh Tene: ah.
awww.
ok
seems confusing, but ok
the interpreter figures out what it needs by itself internally? 19:26
TimToady it's very easy to get used to, and you don't have to match an early @ with a later slice subscript
PerlJam lvh: it's not confusing at all. Anytime you see @, you know you're dealing with an array in some fashion.
TimToady using the sigil to indicate slice was a vestige of when Perl only handled flat data structures
PerlJam lvh: same thing with % for hashes.
lvh PerlJam: even if its secretly not an array but an element of i?
PerlJam: it* 19:27
meh, maybe. i'm not convinced but i'll give it a try
PerlJam lvh: @foo[0] # you're still doing something with the @foo array.
TimToady in P5 you have to do @{much stuff}[0] to get a slice
in P6 it's just much stuff[0] 19:28
PerlJam lvh: @foo[1,2,3] # more mucking with @foo
lvh PerlJam: $foo[0] # this is a scalar
TimToady sliceness is now entirely determined by the subscript
PerlJam lvh; the sigil no longer describes what you get back, but what data structure you're using.
TimToady so you only have to look in one place to know
lvh i suppose. i got use to $this_is_a_scalar_no_matter_what['moo'] syntax fast enough 19:29
PerlJam: i suppose its easier in the sense that in perl5 i have to remember if $ref is a hashref or an array ref
TimToady indeed
PerlJam lvh: And now you can do things like (@a,@b) = (@c,@d) and it makes more sense to more people :)
TimToady hmm, you probably want := there 19:30
PerlJam yeah, I mistyped
lvh that new syntax too?
is there a compendium of everything shiny and new a perl5 addict needs to know before he can write perl6?
TimToady yes, binding instead of assignment. It's just the same as what happens between actual arguments and formal parameters
lvh like, what is this := thing 19:31
TimToady depends on whether you want rationale
spinclad lvh: that would be the synopses, i think
TimToady apocalypses for rationale, synopses for bare facts
lvh TimToady: whats the difference between (@a,@b) = (@c,@d) and (@a,@b) := (@c,@d) for @a,@b,@c,@d?
but i can have a hash of hashes of arrays of hashes in perl6 without using any references? 19:32
TimToady someone else will have to explain, gotta run & 19:36
Tene ?eval {foo => { bar => ({baz => 1, qux => 2},{fl => 3, bn => 4})}} 19:38
evalbot_r16643 ("foo" => {("bar" => ({("baz" => 1), ("qux" => 2)}, {("bn" => 4), ("fl" => 3)})),})
[particle] lvh: evalbot evaluates perl 6 using pugs
the _rXXXXX is the pugs subversion revision number 19:39
Tene ?eval (:foo(:bar( (:baz<1>, :frotz<2>), (:w<3>,:b<4>) ))) 19:41
evalbot_r16643 ("foo" => ("bar" => (("baz" => "1"), ("frotz" => "2"), ("w" => "3"), ("b" => "4"))))
[particle] ?eval my %hash = 'foo' => 'bar'; my @array = <<1 2 3>>; @array.push(%hash); print @array.perl 19:43
evalbot_r16643 OUTPUT[["1", "2", "3", ("foo" => "bar")]] Bool::True
[particle] see, no messy backslashes... no references. 19:44
?eval my %hash = 'foo' => 'bar'; my @array = <<1 2 3>>; @array.push(%hash); print @array[-1]{'foo'} 19:45
evalbot_r16643 OUTPUT[bar] Bool::True
Tene used the wrong brackets.
lvh so, what state is perl6 in?
[particle] the spec is under development, and so is the implementation
lvh I know its going to be released when its ready, but if you'd have to make an educated guess, would it be in the order of magnitude of months or years?
[particle] you should check out the docs at spec.pugscode.org 19:46
lambdabot Title: Official Perl 6 Documentation
[particle] it will show you what state the docs are in, and what state the implementation is in (spec test coverage) 19:47
lvh: maybe sometime in 2008 there will be a beta... that's my guess 19:48
we need your help. want to join us? 19:49
lvh [particle]: im quite sure i don't know enough perl to be a candidate 19:50
[particle]: but, meh, why not
[particle]: i have too much time on my hands as it is
[particle] you can help in many ways, not just perl code 19:51
however, writing perl 6 is fun :)
msg me your email address, and i'll give you a pugs commit bit
lvh [particle]: done, check your privmsgs 19:52
[particle]: where do i get the tshirt? :-P
spinclad 'my folks went off to code Perl 6 and all they sent back was this damn shirt' 19:54
[particle] lvh: commit bit invite sent. expect an email whenever the server gets around to it 19:59
20:14 Aankh|Clone joined 20:16 conradvermeule1 joined
lvh [particle]: got it, thanks. 20:17
[particle] it's customary to modify the AUTHORS file to make sure your commit bit works 20:18
20:19 conradvermeule1 left
lvh [particle]: ill get right at it 20:22
[particle]: commitbit works? you mean, not over subversion? 20:23
[particle] use subversion, check out a working copy of pugs 20:24
modify AUTHORS, commit
lvh [particle]: ok, thats what i was doing :-)
djeez, my wifis practically dead out here 20:28
20:28 gilby joined 20:31 weinigLap joined 20:32 rindolf joined 20:33 elmex joined 20:44 weinigLap joined
rhr another way to phrase my previous question: are two Grapheme objects === if they're canonically equivalent? 20:50
if so, eqv might compare Strs as arrays of Graphs (or Codes or ...) so it would get normalization "for free" at the appropriate unicode levels (graphs or higher)
21:09 weinigLap_ joined 21:18 |Jedai| joined 21:29 devogon_ joined 21:40 polettix joined 21:48 offby1 left 22:25 weinigLap joined 22:26 polettix is now known as polemix 22:27 polemix is now known as polettix, polettix is now known as polemix, polemix left 22:32 iblechbot joined
TimToady rhr: I think in general grapheme level should pretend that everything is normalized, and codepoint level should probably not 22:59
23:01 larsen_ joined 23:05 polemix joined 23:07 falesca joined 23:16 weinigLap_ joined 23:18 weinigLap joined
rhr TimToady: sounds good. Is there a way to get an array view into a Str other than by doing e.g. $s ~~ m:codes/ @<codes> := (.)* / ? 23:41
23:42 polemix is now known as polettix, polettix is now known as poletti, poletti is now known as polemix
TimToady can probably eventually convert to Buf32 23:46
presuming codes and not graphs, which wouldn't fit 23:47
but that would be a conversion, not a view 23:49
I suppose one could have a magical Buf32ish type that did a view
'course, substr et al are supposed to give you most of that if you're at "use codes" level. 23:50
rhr my concern is that substr could turn an O(n) scanning algorithm into O(n**2), e.g. my implementation of Str.graphs 23:54
and how is substr itself implemented? 23:55
TimToady would be nice to have some way of telling a string "analyze yourself for indexing"
rhr right
TimToady equiv to your (.)*
Perl 5's substr does some caching of the last used position, I think 23:57
rhr and for lang-specific processing you might want to look at an arrary of graphs
TimToady since you generally have pretty good locality
interesting that cat() kind of goes the other direction, so maybe a kind of decat... 23:58