perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is your friend!
Set by moritz_ on 4 May 2009.
00:00 frew left 00:14 justatheory left 00:23 amoc joined 00:29 bacek__ joined 00:41 wollmers left 00:42 nsh joined 00:53 fridim left 01:16 aindilis left, aindilis joined 01:21 ra joined 01:25 FurnaceBoy joined 01:27 PhatEddy left 01:28 eternaleye joined 01:29 ra left 01:30 meppl left 01:59 whiteknight left 02:01 justatheory joined 02:04 eternaleye_ joined 02:05 eternaleye left 02:12 alester joined 02:15 nsh left 02:39 cdarroch left 02:45 szabgab_ joined, szabgab left 02:56 payload left, zostay left 02:59 zostay joined 03:14 eternaleye_ left 03:16 zostay left 03:18 skids left 03:20 donaldh left, donaldh joined 03:31 [particle]1 joined 03:37 frew joined 03:44 orafu left, orafu joined 03:49 [particle] left 03:50 TimToady sets mode: -b *!n=stefan@71.59.220.*, TimToady sets mode: -b *!*@c-67-174-249-33.hsd1.ca.comcast.net, DemoPhreak joined, TimToady sets mode: -b *!*@cpe-72-130-0-248.socal.res.rr.com, TimToady sets mode: -b *!*@*ompugoat.biz 03:51 TimToady sets mode: -b heyhey*!*@*, TimToady sets mode: -b *!*n=heyhey@218.25.39.*, TimToady sets mode: -b *!*n=heyhey@221.130.185.* 03:53 wollmers joined, wollmers left 03:56 lambdabot joined 04:06 DemoFreak left
s1n moritz_: i'll have to respond tomorrow :/ 04:10
04:16 FurnaceBoy left
frew can I do given $foo; to set $foo for the topic of the rest of the current scope? 04:31
rakudo: given 1; .say
p6eval rakudo 3412a2: OUTPUT«Could not find non-existent sub given␤current instr.: '_block14' pc 60 (EVAL_18:47)␤»
frew well, it could be nice
TimToady no, that's not currently supported 04:34
but why wouldn't you just say $_ = 1?
(we do reserve the semicolon syntax for that sort of end-of-block semantics, but most of the time it would not contribute to readability) 04:35
frew that's true
I'd forgotten about manually setting it 04:37
05:06 hercynium left 05:14 hcchien left, clkao left, hcchien joined, alester left 05:15 clkao joined 05:19 eternaleye joined 05:33 clkao_ joined, clkao left 05:34 clkao_ is now known as clkao
pugs_svn r26817 | lwall++ | [Cursor] remove accidental whitespace in :< x > macro 05:36
05:38 ihrd joined 05:39 ihrd left 05:44 _REPLeffect joined 05:45 _REPLeffect is now known as REPLeffect 05:49 eMaX joined 06:04 LadyLunacy joined 06:13 LadyLuna1y left 06:21 mib_p02slb joined 06:22 eMaX left 06:23 eMaX joined 06:24 mib_p02slb left 06:27 justatheory left 06:45 mberends joined 06:53 iblechbot joined 07:20 donaldh left, donaldh joined 07:27 frew left 07:32 Kisu joined 07:33 sri_kraih_ joined 07:36 ejs joined 07:42 finanalyst joined 07:49 sri_kraih left 08:00 eMaX left 08:06 _mg_ joined 08:09 NoirSoldats joined
Tene Ooo... when did rakudo spectest learn to run multiple in parallel? 08:12
moritz_ Tene: about a month (or two) ago
commit ea9417560bd818e31419b6fcbdf3d265a93f186a 08:13
Date: Tue Apr 7 16:59:43 2009 +0200
re-enable parallel testing in t/harness again
Tene Heh. 08:14
OK
Man, so many tests...
la la la waiting for spectests...
♪ spectests song... ♪ 08:16
moritz_ 15min with parrot configured with --optimize and parallel harness
Tene I didn't think to run it under time... :(
moritz_ the harness prints the "wallclock secs" at the end 08:17
Tene ah nice
08:18 EvanCarroll joined, EvanCarroll left 08:24 spx2 joined
mberends Tene: be happy. spectest takes 2235 secs (~37min) on this dual AMD64 08:25
Tene Files=388, Tests=13826, 1105 wallclock secs ( 7.01 usr 1.73 sys + 1937.50 cusr 99.34 csys = 2045.58 CPU) 08:28
moritz_ mberends: but in serial mode, right? 08:29
Tene: more importantly, did it PASS? :-)
(except the known segfault in slice.t)
08:29 ejs1 joined
Tene Oops, didn't mean to also push to the hll branch. 08:30
moritz_:
Test Summary Report
-------------------
t/spec/S32-io/IO-Socket-INET.t (Wstat: 0 Tests: 3 Failed: 2) Failed tests: 2-3
moritz_ Tene: could you re-run that test? 08:32
it sometimes fails, seemingly randomly
(but usually only the third fails)
dalek kudo: 1064529 | tene++ | (4 files):
Make everything actually compile under a different HLL.
Tene moritz_: yes, it passes all three 08:33
08:36 spx2_ left
moritz_ Tene: in that commit one comment says "MUST BE LOWERCASE", but then you use get_hll_namespace ['Perl6';'Grammar'] 08:37
Tene: does that mean we have both 'perl6' and 'Perl6'?
08:38 ejs left
Tene moritz_: get_hll_namespace [ ... ] == get_root_namespace [ 'perl6' ; ... ] 08:39
so, yes.
moritz_: the issue is that Parrot lowercases whatever HLL name we use
so if we set 'Perl6' as the HLL name, the namespace would be get_root_whatever [ 'perl6' ]
moritz_ Tene: ah 08:40
Tene so in the case where we need to look at the hll namespace directly, it fails
moritz_ Tene: is that lower casing a parrot bug?
Tene which we do in src/parrot/Protoobject.pir
moritz_ and if yes, is there a ticket for it?
Tene it's a design issue. I asked for feedback from it on the list, and I don't remember the overall response.
It's currently working as specced. 08:41
So, not an impl. bug, but maybe a design bug.
no, I don't think there's a ticket for it. 08:43
At least, I didn' tmake one.
08:43 eMaX joined, masak joined 08:44 meppl joined
masak good beforenoon, perl 6 people. 08:44
lambdabot masak: You have 1 new message. '/msg lambdabot @messages' to read it.
masak @messages
lambdabot eternaleye said 2h 59m 20s ago: (re set operations) something like this? -- multi sub infix:<⊂>( Any @subset_candidate, Any @superset_candidate --> Bool ) { return Bool::True if ( all( @subset_
candidate ) ~~ any(@superset_candidate) ); }; say ([ 1, 3 ] ⊂ [ 1, 2, 3 ]).perl # Works in Pugs!
masak eternaleye: aye, something like that. :)
Tene there's a Set.pm in pugs that defines those. 08:45
masak eternaleye: there's also a Set.pm somewhere in the Pugs repo that defines... aye.
Tene :) masak++
masak thing is, I don't think anyone has the big picture on how Sets and Bags will play into the rest of the language. 08:46
as far as I see it, we don't want to introduce too much new syntax.
it would be best if the new features could just "blend in" somehow.
moritz_ masak: maybe ask TimToady, he often has a quite concrete (albeit not complete) idea in the back of his mind 08:54
masak yes. I expect to have plenty of discussions with TimToady (and the rest of #perl6) about Sets and Bags in the near future. 08:55
Tene hmm... decent number of failures in .HLL 'perl6' 09:02
I have a vague idea about most of them.
spectest still running, though... :(
09:02 bacek__ left 09:05 payload joined
Tene Files=388, Tests=13422, 1563 wallclock secs ( 7.11 usr 1.41 sys + 2653.90 cusr 97.25 csys = 2759.67 CPU) 09:10
spectests actually do run slower in .HLL 'perl6'
they also fail a lot
09:15 cognominal joined
masak after backlogging, I just have one question: 09:17
"how do u make your own chanle" :)
oh, and also how is babby formed.
mberends: it might be a good idea to start making a list of things that proto does not do, but that its successor ("pro-II"?) might. 09:19
09:20 mhsparks joined
mberends does u rly want 2 get me started? 09:22
masak well... thinking about features has never hurt, I think. 09:23
it's still important not to overdesign, of course, but just listing features seems fairly harmless.
mberends mainly integrating with the 'use' command to be designed in August. 09:24
masak yes, absolutely. 09:25
also with the whole package idea championed by frettled++.
jnthn H H 09:26
mberends O AI!
masak jnthn: o/ 09:27
mberends it would be best to minimize dependencies, and avoid config files, environment variables and so on if possible.
masak aye.
make Perl 6 monolithic, in a sense.
one problem with CPAN is that it's very postmodern. it shows all the pipes sticking out, making me answer all these questions the first time, and then spewing out kilometer upon kilometer of make output. 09:28
proto was designed partly as a reaction against that. 09:29
moritz_ I think that proto could very well rely on some config file parsing module, but should simply include a copy of it
mberends that's when PERL6LIB should be phased out. There is a similar background and reasoning behind P5's PERLLIB, but the goals this time are a bit more ambitious. Yes, I think proto's config file idea is much better so far. 09:30
09:30 LylePerl joined, donaldh left
masak the comments are out-of-date in config.proto, by the way. :/ 09:30
Matt-W Fix them!
masak I'll see if I'll have time to fix that.
Matt-W Out of date comments are the source of much evil 09:31
09:31 payload left
masak Matt-W: aye, sir. 09:31
mberends I would not mind if ./perl6 also had a config file in /etc or wherever Windows should do similar.
masak mberends: sounds like a sane idea.
mberends just like bash etc
TimToady was very against that in P5 though 09:32
09:32 jferrero joined
masak mberends: I'm sensing a disfactoring of Installer.pm coming up. 09:32
mberends and with good reason
masak mberends: thinking of creating a separate class Ecosystem.pm -- name still up for discussion.
likely a separate class Project will fall out of that, too. 09:33
mberends yes, you mentioned that yesterday, probably one part to do Ecosystem and another part for Install.
masak yes. 09:34
Install makes use of (and haz) Ecosystem.
mberends that Ecosystem part might overlap ~/.perl6.conf or /etc/perl6.conf
masak sure, but this is proto. :) 09:35
mberends proto per se AGNI except to beautify a class design. a big monolithic mess is simpler and also does the job. 09:37
lurkers: Ain't Gonna Need It ;)
back to that 'use' command, versioning and disambiguating authors/authorities should be based on filesystem hierarchy as much as possible, but not obsessively so if sensible configuration data helps. 09:40
09:41 Guest89223 left
mberends s/disambiguating/distinguishing/ 09:41
Ecosystem should support that, but the results *may* not depend on proto, ever. 09:42
the .NET Global Assembly Cache is could almost work for P6 09:44
s/is // #gah
masak mberends: well, I'm going to resist any Functional Additions to proto as long as it seems sensible. 09:45
people are welcome to fork off, though. :)
09:47 payload joined
mberends would you prefer a clean break / fork between proto and pro-II, or a gradual morph? 09:48
masak mberends: that would depend on the reqs for pro-II, I think.
mberends votes for morph
masak morph is usually easier, yes.
it's the "from fail to work < from work to fail" rule all over again. 09:49
mberends an excellent way of putting it 09:50
masak mberends: well, it was you who said it the first time. :) 09:51
mberends that's what forks usually do too, and Darwinism finishes the job
masak it resonates well with me though, because it reminds me of Dawkins' "There are a lot more ways of being dead than of being alive."
believe it or not, that amounts to the same thing. :) 09:52
mberends :) life is precious, and rare
masak that, too.
but the point is, I think, that once you've got something going (life, sockets, proto, etc), it's a good idea to keep builing from that...
...instead of starting over with something that doesn't work yet. 09:53
mberends to a point. the state of P5 guts are the reason for P6.
masak oh, to be sure. 09:54
but note that we're not throwing out all of P5 either.
mberends proto's guts are nice IMNSHO, hence morph, into multiple classes if that is justified. After the 'use' case, I think popularity-contest would be the next feature I'd like to add. 09:57
masak "what's popularity-contest, precious?"
mberends the Debian term for statistics about number of installations, kind of deployment feedback. It's done via email. 09:59
masak ok, I can think rationally about that as long as I don't think of it as an addition to proto. :P 10:00
mberends Another feature idea would be wtop-stubber-kwalitee enhancement
masak oh, yes. 10:01
but I see that as a separate project, if for no other reason than the fact that deps already point from that towards proto.
10:02 donaldh joined
mberends ?? that's a reason _not_ to separate, surely? 10:02
lambdabot Plugin `compose' failed with: Unknown command: ""
masak lambdabot: ssh. 10:03
grownups talking.
mberends: I guess it depends.
mberends: if I do the Ecosystem disfactor, I can have WTOP depend on proto.
the former simply asks the latter for all known projects, whether they're installed, etc. 10:04
oh, and their locations on disk.
mberends the similarities to debian packaging are everywhere 10:05
masak oh, I would love to see an installer that piggy-backed on the APT system. 10:06
but I'm not the person to start such a project.
mberends if support for gzip and ar could be built in (ie no external lib or exe dependency) then I would look no further. I'm still wondering about whether those two could be written in PIR. 10:07
masak I don't see why not. 10:08
lurkers: ^^ projects for you!
mberends it's a task bigger than 1 hackathon. 10:09
masak indeed. 10:10
10:11 payload left, pmurias joined
mberends you're right, there is no reason why not. how about this approach: they're both written in C, so try the C to Parrot compiler on them? I don't know the status of C on parrot, though. 10:12
masak sounds like a fun experiment. 10:13
mberends the experiment is hackathon sized :) 10:14
afk & 10:15
10:16 eMaX left, eMaX joined
masak lunch & 10:17
10:21 payload joined 10:41 payload left 10:52 clkao left, clkao joined 11:02 clintongormley joined 11:20 donaldh left, donaldh joined 11:41 pmurias left 11:50 eMaX left 11:51 eMaX joined 11:59 VX joined 12:12 ashizawa joined 12:19 payload joined 12:21 H1N1[A] left 12:22 H1N1 joined 12:27 payload left, payload joined 12:40 abra joined 12:42 ruoso joined
ruoso Hello! 12:44
Matt-W hi ruoso 12:52
12:58 iblechbot left 13:02 ejs2 joined 13:03 payload1 joined 13:04 payload left 13:11 ejs1 left 13:16 payload joined, payload1 left 13:28 payload left 13:29 lichtkind joined 13:40 skids joined 13:45 exodist joined 13:48 H1N1 is now known as H1N1[A]
mberends groks gregorian, julian and other date representations 13:50
13:53 Kisu left 13:57 alester joined 13:59 finanalyst left 14:03 ejs2 left 14:04 payload joined 14:09 LadyLuna1y joined 14:19 LadyLunacy left
masak I wouldn't dare say I *grok* gregorian. I've heard of it, that's all. :) 14:22
14:26 payload left 14:27 _mg_ left
mberends excellent Calendar FAQ www.tondering.dk/claus/calendar.html 14:27
you could call some of it "applied numerology" 14:28
moritz_ there's not even one calendar I grok :) 14:29
masak calendars are serious business. 14:30
arnsholt masak: Gregorian is the calendar we're using today, so I'd say you probably grok it reasonably well =)
Infinoid calendars have always seemed arbitrary and a bit ... "un-round" to me
Infinoid just hates divisors that aren't powers of 2 :)
masak arnsholt: oh, yeah, right. Gregorian is that calendar. :P
arnsholt: but still, "grok" is a strong word. 14:31
"grok reasonably well feels" like a half-oxymoron.
arnsholt Julian is the predecessor, which is still used by the orthodox church to compute the date for Easter
masak it's interesting to follow the evolution of the concepts of time and money. as society deepends, these two concepts become more abstract and removed from reality. 14:33
time used to be related to the movements of the sun.
money used to be related to the physical posession of real things.
arnsholt Infinoid: Calendars are as arbitrary as they are because the Earth's orbital period isn't an integer (and even the integer part of it is kinda nasty to work with)
mberends so when I transcribe one algorithm, today is 2009-05-26 :P hopefully just a topy. 14:34
masak nowadays, time is vibrations of atoms, and money is numbers created by banks.
arnsholt masak: Just as an aside, calendars don't have to be solar. They can be lunar as well, like the Muslim and Jewish ones
masak arnsholt: oh, right. and the Chinese one. 14:35
arnsholt Yeah
masak would be fun to base a calendar on the movements of Venus or something. :)
moritz_ the curious thing about time is that I haven't seen a good definition of it
it seems it's one the things that are too fundamental to define (what a horror for a mathematician) 14:36
mberends "it's just there to prevent everything happening simultaneously"
Infinoid arnsholt: Yeah, I'm submitting a ticket for that (Earth's orbital period being non-integer)
masak I always liked this Jack Handey quote: 'I wish I lived on a planet that had two suns---regular sun and "rogue" sun. That way, when somebody asked me what time it was, I'd say, "Regular time?" And they'd say, "Yeah." And I'd say, "Sorry, all I have is rogue time." It'd be fun to be a stuck-up rogue-time guy.'
moritz_ and how do you define "simultaneously"? "happining at the same time"? 14:37
mberends together
moritz_ bah, recursive defintions are even more evil than eval :-)
masak moritz_: pfesh, semantics. :)
arnsholt No! Semantics are fun! =D
Says the linguist 14:38
moritz_ mberends: "together" isn't very precise
mberends mumble
TimToady I'm not together yet... 14:44
the reason I'm opposed to .conf files for both p5 and p6 is that it leads to invisible monkey patching, as if people can modify your setting without telling you they're changing the language you start in. 14:47
I'm fine with redefining the language as long as it's done declaratively.
I don't even mind using a configuration file as long as the *use* of it is declared. 14:48
but every Perl 6 program using CORE for the setting had better start out being the same language at the top of the file, or we're screwed before we start 14:49
mberends TimToady: that's a very useful possibility
moritz_ still doesn't see how a module database can work reasonably without config files
TimToady this is language policy, not database policy :)
for a database, the configuration files *are* the declaration 14:50
mberends moritz_: there would be files, including database files. all is fair if you predeclare (the files).
masak let's take Rakudo as a concrete example. where would it put its module database? 14:51
in a subdir of the Rakudo installation, or in a fixed dir on the disk somewhere?
moritz_ if installed, probably under /usr/lib/perl/6.0/ 14:52
masak for the former, the problem is that we have to have something like a RAKUDO_DIR env variable.
moritz_ or /usr/lib/rakudo/
mberends that's implementation detail, either is allowed. Look at Samba to compare.
[particle]- TimToady: that should be codified, so it's clear that modifying the setting *must* be declared and cannot happen automagically to meet the perl 6 spec
14:52 justatheory joined
[particle]- sorry for dangling that modifier, ETOOEARLY still 14:52
14:52 mikehh_ joined
masak mberends: I don't think it's that easy to dismiss as "implementation detail". underdesign might mean that bad compromises have to be struck later. 14:53
cf proto. :)
TimToady well, it's already implied by the notion that once a module is registered as official, it's immutable
and you must version or auth it to change it
14:54 abra left
[particle]- modules are closed but classes are open? 14:54
^^ re: immutable 14:55
moritz_ so basically we need a mapping from long name (including unicode short name, version and author) to file name
TimToady no, what you get out of the library API is immutable; you can modify them after that with monkey patching
moritz_ and a mechanism to avoid that for local testing
TimToady but everyone who pulls Foo out of the official library should be getting the same Foo
[particle]- ok. got it. and agreed, that is implied and makes sense. 14:56
TimToady (implying ver and auth in Foo)
masak moritz_: yes, the mapping thing worries me somewhat.
moritz_: it's nontrivial.
[particle]- we need CPANfs
mberends masak: details was not meant to be dismissive, sorry. But implementations will vary in what they need...
TimToady or to put it another way, language mutation must be fully named, either with module:ver:auth or by a pedigree of lexically scoped declarations 14:57
14:57 iblechbot joined
TimToady what would happen to the Web if we had multiple roots to http:// that went different places? 14:58
[particle]- ask china
TimToady that's what mutatable configuration files would do to the languge
and it's to be construed as deeply suboptimal
the U is supposed to mean "universal" 14:59
masak mberends: yes, naturally. I'm just implying that the details around modules aren't yet implemented enough to have been proven practical. there may well be one or two impossibilities in there that we don't notice yet. things like "we cannot have any config files or env vars, and the location of the Rakudo install is variable. d'oh!"
[particle]- indeed. this way lies madness.
TimToady but essentially locales are the same kind of madness
masak TimToady: the "U" used to mean "Universal". nowadays it mean "Uniform". :/ 15:00
TimToady you're choosing to be in an ambiguous language based on someone else's external definition
[particle]- but locales are declared
TimToady it's fine to use locales as long as you declare that you want to be in such an ambiguous situation
mberends the predeclare config route look fruitful - some kind of 'use thisconfig' above the remaining 'use' lines. 15:01
TimToady but we try not to make Perl 6 ambiguous that way except by express declaration
so if you want to use locales in Perl 6, you must declare that.
moritz_ likes that
TimToady otherwise you get flat Unicode semantics
which tries to do the right thing for everyone to the extent possible without local assumptions 15:02
15:02 mib_2gjite joined
TimToady anyway, yes, I still feel strongly about that. :) 15:02
mib_2gjite i need help 15:03
masak mib_2gjite: with Perl 6?
mib_2gjite whoz op ?
masak mib_2gjite: do you have a Perl 6 question?
15:03 mib_2gjite was kicked by TimToady (TimToady)), mikehh left
masak I think "whoz op?" will be my new greeting in #perl6. :) 15:04
TimToady I think anything from mibbit is likely in need of kicking and/or banning these days
I cleaned out some ban slots last night just for that purpose :)
masak aww, not so sure. some of my best friends use mibbit.
mberends :)
TimToady yes, but I recognize the style here from the past several days 15:05
haven't decided whether it's an irritating bot or non-bot
moritz_ we don't have to decide 15:06
masak not sure the difference is essential. :)
moritz_ the "irritating" part is important, not the botness
TimToady anyway, anyone coming in from mibbit and being semi-incoherent should be assumed to be the same person, for now 15:07
15:07 MalamSAlam joined
TimToady you see 15:07
mberends ducks
masak what could a Perl 6 bot do in here to come across as pleasant, besides doing eval tasks, conversions, messages or karma?
15:08 MalamSAlam left
moritz_ masak: being silent 15:08
masak moritz_: that's an important criterion, yes. :)
moritz_: but in terms of impressiveness...
moritz_ maybe hand out ops
masak good one.
moritz_ have some lookup for project homepages
(but not as annoying as purl, please)
masak maybe hand out a prize every evening, based on some unknown rule. 15:09
moritz_: not being as annoying as purl is the easy part.
moritz_ "the most active lurker"
masak :D
15:09 mhsparks left
masak "most polite committer" 15:10
15:10 mhsparks joined
masak "happiest-sounding debater" 15:10
15:10 M_o_C joined
masak "most talked-to person" 15:10
moritz_ lowest smiley-to-quotes ratio
[particle]- cutest network packet 15:11
masak awwww. <3
15:14 amoc left 15:19 nihiliad joined 15:20 donaldh left 15:21 donaldh joined
pmichaud good morning, #perl6 15:25
sbp hey pmichaud 15:26
masak whoz op, pmichaud. 15:27
sbp (translation: masak is a secret mibbit user)
pmichaud /kick masak 15:28
masak :P
pmichaud I already read the backlog :-P
masak I just wanted to know how do u make your own chanle...
sbp masak: obviously a perl6 bot should implement a game of perl6 syntax nomic 15:30
pmichaud In your case, you start by writing your own IRC server in Perl 6.
sbp where people compete to convolute perl6 into the most egregious areas of syntaxitude
TimToady it isn't already?
sbp heh, heh
masak sbp: problem with programming-lang nomics is that they're so different from the original version... 15:31
sbp just thought that as well as being a ripe source of entertainment, it might also have the unwanted side-effect of producing ideas that may actually be useful; sort of how Damien's Quantum Superpositions joke, which everybody thought hilarious, became junctions, which everybody thinks even more hilarious 15:32
*Damian 15:33
might not work on IRC so well given the limited space
15:34 jan_ joined
TimToady but I can see a line of daily recursive Setting files being installed in *PAN to define the new language of the day based on earlier ones :) 15:34
masak rakudo: multi sub infix:<!+> { $^a + $^b } 15:35
p6eval rakudo 106452: OUTPUT«Malformed routine definition at line 1, near "infix:<!+>"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
pmichaud masak: not yet... working on that now :-)
TimToady take a while to compile after it's nested several thousand settings deep though...
masak pmichaud: cool.
TimToady I guess the new game would be called cpanic, or some such... 15:36
sbp someone could make a GA for syntax evolution whose fitness function is based on how much people chuckle at the results. though I have a feeling that it'd just turn out like $insert-your-most-hated-programming-language-here
15:37 register72 joined
jnthn hi register72, welcome to #perl6 :-) 15:39
register72 hi everybody
how may I help?
sbp give us the spec for perl7
masak register72: a very good question, sir!
mberends finish perl6?
jnthn register72 has just been asking me in private message about getting involved in Perl 6, so I suggested he joined here to get more ideas. :-) 15:40
masak register72: you can help with the test suite.
register72: or with one of the implementations. or with documentation.
jnthn mberends: :-P
masak register72: or you can write programs in Perl 6, dragging out bugs.
sbp still isn't used to people coming to tech channels askign *to* help rather than *for* help...
masak jnthn: "suggested he join". an excellent time to use the subjunctive. :P 15:41
register72 I know that there is some development about a perl6 web framework going on right?
masak admires his own grammar nazi hat
register72: yes. 15:42
jnthn masak: My English not the good, sorry.
masak: btw how is chanel formed?
masak jnthn: *lol*
jnthn: "chanle" :)
jnthn register72: See github.com/masak/web/ for more on the web stuff 15:43
mberends jnthn: as in Mandlebrot ;)
jnthn register72: Or ask masak ;-)
masak looks skywards and whistles 15:44
15:44 Kisu joined
sbp squinteth at feather.perl6.nl/~masak/november-smoke.html 15:44
15:44 Psyche^ joined
masak no, actually, questions are fine. 15:44
sbp masak: how come it's showing 100% for all these?
and then some are marked as not ok and browned out
masak sbp: those are called TODO tests.
sbp more like RFEs than Bugs? 15:45
15:45 Patterner left, Psyche^ is now known as Patterner
masak aye. 15:45
sbp okay, thanks
masak np.
patches welcome. :)
also, that smoke is against Oslo, not Bratislava or bleeding.
(because Oslo is all that builds on feather presently) 15:46
sbp =item A URI module based on RFC 3986, using Perl 6 grammars. 15:47
github.com/masak/web/blob/d42596a45...OPOSAL.pod
masak: and IRIs?
register72 masak is your framework a template like system for html rendering?
anyway
to come back to the point
I would like to contribute some C code
but could be also interested in writing some general framework in perl6
so I am open to suggestions
sbp register72: do you know CGI.pm from ye olde perl5 days?
it's kinda meant to be a replacement of that 15:48
register72 yes
ah ok
sbp so yeah, some templating
cf. this:
=item A slightly more advanced XML-aware templating system, similar to
Python's Genshi.
masak register72: it's not a template-like system, but it has one or two of those. (or "endorses" them, or whatever the relation turns out to be)
register72 ok
jnthn register72: There's (intentionally) not that much C in Rakudo. On the other hand, if you want to help rakudo along, I'm sure there's some Parrot issues that you could work on that would directly help Rakudo.
And that'd involve C.
register72 ok 15:49
jnthn Rakudo is mostly written in Perl 6 or subsets of Perl 6, plus PIR.
With just a small sprinkling of C.
masak sbp: sorry, IRIs?
register72 jnthn could you provide me some pointers?
TimToady C already has pointers
jnthn register72: int *foo;
char *bar; 15:50
;-)
register72 emh
better initialize them
;)
char* bar=NULL;
sbp masak: RFC 3987. basically URIs that allow unicode in them
jnthn pmichaud: Do we have anywhere a list of Parrot issues that'd really help Rakudo along?
sbp for example, an actualy U+0020 space is allowed in an IRI
register72 int* foo=&perl6_parrot_pointers; 15:51
pmichaud jnthn: we have trac tickets, but I don't know that they're organized by "helps rakudo"
sbp whereas it's not allowed in a URI; you have to encode it as %20 (or some servers interpret + as a space in certain contexts; well, just query strings)
mberends wouldn't Q:C{ printf "hello, world"; } be cool?
pmichaud I might be able to tag them.
masak sbp: a guy wrote to ihrd and me the other day, saying he'd implemented URI.pm using RFC 2396 as a basis.
sbp masak: browsers are sorta flipping back and forward between IRIs and URIs these days
heh, poor guy 15:52
masak sbp: ok. I don't know much about URIs; so far that has been ihrd++'s department.
an unresolved question for me is how much URI handling should be built into Web.pm.
sbp m'kay. I can't even find URI.pm in Web.pm 15:53
15:53 eMaX left
jnthn register72: If you wanted to take on something bigger that would help Rakudo but also Parrot in general, we're very much in need of a PIR-level profiler. 15:53
register72 ok
masak sbp: no, there's no such class yet.
jnthn register72: We currently don't have a good way of knowing about performance bottlenecks 'cus we just don't have the tools to tell us. 15:54
sbp ah. I thought you wrote somewhere you were just incorporating November's URI.pm?
masak sbp: there's a project called uri, though.
jnthn Or not really easily anyway.
sbp hmm, okay
masak sbp: aye, that project is just November's URI.pm pulled out.
sbp ah!
masak (AFAIU)
register72 that's pretty tough 15:55
sbp masak: Got Link™? having trouble finding it on the intergoogles
masak sbp: hold on.
register72 I am not so confident that I can make it since I know pretty well how to code in C but I don't know almost nothing about parrot internals 15:56
15:56 PhatEddy joined
register72 but I can try to have a look 15:56
ok
moritz_ register72: then maybe start with smaller features, or bug fixes
register72: also join #parrot on irc.perl.org
masak sbp: github.com/ihrd/uri github.com/ronaldxs/uri
second one's the one I heard about yesterday. 15:57
sbp cool, thanks
register72 jnthn are you into parrot?
jnthn register72: A ticket that directly affect Rakudo: trac.parrot.org/parrot/ticket/536
register72: yeah, as "jonathan" there
PhatEddy Yesterday jnthn was having trouble with "make t/spec/sometest" under windows - if it involved mingw32-make I may have a fix 16:00
If one replaces "t\\*.t t\\*\\*.t t\\*\\*\\*.t: all Test.pir" with "$(shell $(PERL) -e "print join(' ', (<t\\*.t>, <t\\*\\*.t>, <t\\*\\*\\*.t>))"): all Test.pir" (more) 16:01
16:01 mikehh_ is now known as mikehh
PhatEddy it seems a bit ugly to me but it seems to work 16:01
jnthn register72: Also this one is a real pain for Rakudo - we could pass more tests with this fixed: trac.parrot.org/parrot/ticket/24
PhatEddy any interest in a patch like this? 16:02
register72 jnthn: saw the ticket and I see also that parrot has a "trace" core. "Tracing" has some connection with profiling so I guess that know I have some material
jnthn register72: Yes, that'd be a place to start looking.
register72 thanks guys 16:03
sbp hmm. URI ~ URI could join the two URIs according to normal resolution, and URI ~ Str could just bung the string onto the end of the URI, utf-8 and %HH encoded...
jnthn register72: A profiling runcore sounds like an interesting idea.
masak sbp: in other words, you want operator overloading too :)
[particle]- PhatEddy: did you try that with msvc? i don't think $(shell ...) will do anything useful in cmd/nmake 16:04
sbp YES!!@
heh
masak sbp: coming soon, accoring to pmichaud.
jnthn register72: chromatic who is on #parrot now and then was talking about refactoring runcores a bit to make things more pluggable as something to help with implementing another runcore for profiling too.
masak sbp: by the way, what do you mean by "join the two URIs according to normal resolution"?
register72 ok
jnthn Anyway, if you want to look into any of the issues I've mentioned, that'd be awesome. :-)
sbp masak: so joining example.org/test/ and ../filename gives example.org/filename 16:05
and *not* example.org/test/../filename
standard uri join
masak sbp: that's quite a nice idea.
16:06 mizioumt joined
PhatEddy [particle]-: sorry I don't work with msvc. I just got it to work with mingw32-make ... but the make program should be identifiable in the configuration/Configure.pl ... 16:06
jnthn away for a bit
masak sbp: I was going to object that that isn't close enough to real concatenation, but I think I like it, so... :)
[particle]- PhatEddy: ok, well i'm a bit distracted (on phone) so i may be missing something and you may be spot on
sbp masak: it can chain like concatenation too because a ~ b ~ c just means join(join(a, b), c) 16:07
masak sbp: aye, that's quite nice. 16:08
sbp the head of the chain would have to be absolute though, I think (a URI with a ':' in it)
can't remember the rules precisely
masak sbp: I was going to say something like that.
PerlJam sbp: is using .. in that manner part of the URI/URL spec? 16:09
PhatEddy [particle]-: bbiab - and hopefully you'll be less distracted. I do have nmake and will try to experiment with that as well .. 16:10
sbp PerlJam: yeah
16:10 register72 left
sbp § 5 in RFC RFC 3986 16:10
16:10 ejs joined
PerlJam sbp: thanks 16:10
sbp (spot the point where I had to look up the number and forgot what I'd typed already) 16:11
moritz_ maybe my IRC logs should recognize RFC 3986 and turn it into a link...
sbp masak: actually, despite what you've put in GRANT-PROPOSAL.pod, I guess it does make sense for URI.pm to be separate, because an HTTP client library is bound to want to use it, but isn't going to want to use anything else in Web.pm really 16:13
it's one of the few shared aspects between the client and server architectures I suppose
moritz_ ah, be careful here... a HTTP server that automatically transforms /foo/../ into / could be very dangerous ;-) 16:14
that aside, I agree
masak sbp: indeed. 16:17
sbp: and Web.pm is HTTP-engine-agnostic.
16:22 REPLeffect left
sbp what's the perl6 state of the art for HTTP client side operations? 16:23
moritz_ nothingmuch, I fear
there was a basic LWP::Simple implementation at a hackathon (or so I've been told), but the code was never published 16:24
rakudo: say "\r".ord
p6eval rakudo 106452: OUTPUT«13␤»
sbp thanks
16:26 kane__ joined 16:31 nbrown_ joined
masak interesting PerlMonks thread from the past about the Perl 6 future: www.perlmonks.org/?node_id=404127 16:34
ruoso pmichaud, were you able to take a look at the problem I mentioned yesterday? 16:35
Tene sbp: I can give you something tonight if you want.
masak Tene++
PerlJam masak: unfortunately perl 6 won't be out in 2012 ;) 16:36
moritz_ not "out", but "in" (use)
Tene masak: web.pm *should* be http engine agnostic, but now isn't
masak Tene: well, it's more like we're using it wrong right now. 16:37
HTTP::Daemon shouldn't really be a part of Web.pm
just the middleware to accommodate it.
Tene exactly 16:38
16:38 eMaX joined
masak PerlJam: you're probably right, but I've realized I don't care about the "out" property of Perl 6, so... 16:38
PerlJam yeah, as long as it's useful (and it is now)
masak Tene: I promise to remedy that before the situation grows too silly. 16:39
PerlJam (rakudo is anyway :-)
masak and Pugs too, to some degree.
sbp Tene: oh, cool
ruoso rakudo: class Foo { method bar($a) { say $a }; method foo { $.bar('ok') } }; Foo.new.foo;
sbp Tene: I was kinda thinking about various things connected with it
p6eval rakudo 106452: OUTPUT«too few arguments passed (1) - 2 params expected␤current instr.: 'parrot;Foo;bar' pc 136 (EVAL_21:74)␤»
PerlJam pugs is too frozen in time to be useful enough
ruoso is that a known bug?
sbp Tene: a) using such a thing, b) checking such a thing does encoding right, c) checking that the general architecture is sound
especially encoding, because it's always tricky 16:40
moritz_ ruoso: the $.method abbreviatioin doesn't always work in rakudo
masak ruoso: wtf?
masak submits rakudobug
moritz_ ruoso: but self.method should work
ruoso it does...
I was just wondering if that was already a known issue
moritz_ known to me and pmichaud, at least ;-) 16:41
16:41 [1]nbrown joined
pmichaud it's a known issue. 16:41
moritz_ dunno if known to RT
pmichaud there's even a ticket for it.
16:41 cognominal left
moritz_ ok 16:41
masak suspects it's in RT...
ruoso hi pmichaud
pmichaud RT #61988 16:42
masak hits the undo button 16:43
Tene sbp: Yes, I am encoding-stupid... would love help getting it right in http stuff I'm working on.
masak is encoding-stupid too, but on the learning curve 16:44
16:44 cognominal joined
moritz_ is pretty encoding-aware 16:44
skids rakudo: my $a; my sub b { return { "OH HAI".say } }; $a = b(); $a.perl.say; $a();
p6eval rakudo 106452: OUTPUT«{ ... }␤OH HAI␤»
skids rakudo: my $a; my sub b { { "OH HAI".say } }; $a = b(); $a.perl.say; $a(); 16:45
p6eval rakudo 106452: OUTPUT«OH HAI␤1␤invoke() not implemented in class 'Integer'␤current instr.: '_block14' pc 122 (EVAL_20:61)␤»
skids rakudo: my $a; my sub b { { $^f; "OH HAI".say } }; $a = b(); $a.perl.say; $a();
p6eval rakudo 106452: OUTPUT«too few arguments passed (0) - 1 params expected␤current instr.: '_block27' pc 291 (EVAL_20:122)␤»
skids rakudo: my $a; my sub b { { $^f; "OH HAI".say } }; $a = b(); $a.perl.say; $a(1);
16:45 masak left
p6eval rakudo 106452: OUTPUT«too few arguments passed (0) - 1 params expected␤current instr.: '_block27' pc 298 (EVAL_20:124)␤» 16:45
skids rakudo: my $a; my sub b { return { $^f; "OH HAI".say } }; $a = b(); $a.perl.say; $a(1);
p6eval rakudo 106452: OUTPUT«{ ... }␤OH HAI␤»
pmichaud skids: note that your nested block is an immediate block
moritz_ rakudo++ # getting all of tese right so far 16:46
skids If it is an immediate block, then is the code in S04 lift wrong?
pmichaud checking
no, those are pointy subs
(or pointy blocks) 16:47
so they aren't immediate
skids rakudo: my $a; my sub b { -> $f { $^f; "OH HAI".say } }; $a = b(); $a.perl.say; $a(1);
pmichaud rakudo: my $a; my sub b { -> { "OH HAI".say } }; $a = b(); $a.perl.say; $a();
p6eval rakudo 106452: OUTPUT«Cannot use placeholder var in block with signature. at line 1, near "; \"OH HAI\""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤»
rakudo 106452: OUTPUT«{ ... }␤OH HAI␤»
pmichaud rakudo++
skids rakudo: my $a; my sub b { -> $f { $f; "OH HAI".say } }; $a = b(); $a.perl.say; $a(1); 16:48
p6eval rakudo 106452: OUTPUT«{ ... }␤OH HAI␤»
skids OK, good then.
Though that's probably going to end up being a FAQ.
16:48 nbrown left, [1]nbrown is now known as nbrown
ruoso skids, what was the behavior you expected? 16:50
16:50 cdarroch joined
moritz_ there can be no language with a FAQ 16:50
if there were one, people would ask "why isn't there a FAQ?", which would be a FAQ
(proof by contradiction)++
skids My mind was open :-) I just hadn't remembered reading anything about pointies not being immediate. 16:51
pmichaud iirc, only bare blocks can be immediate
Tene moritz_: but would they ask it *frequentlyz?
skids Even if there's a topic?
ruoso yes... bare blocks have a .() implied 16:52
moritz_ Tene: sufficiently frequently to qualify as FAQ (compared to all other questions, at least ;-)
ruoso rakudo: sub foo { { say 'hello' } }; foo();
p6eval rakudo 106452: OUTPUT«hello␤»
moritz_ without it much of the test suite wouldn't work 16:53
ruoso rakudo: sub foo { { say 'hello' }.() }; foo(); # this would be the implied call\
p6eval rakudo 106452: OUTPUT«hello␤»
skids It's probably the most FAQ-free behavior, mind you (makes sense)
ruoso skids, it only looks weird while it is in a single line 16:54
if you put it into a long file
16:54 nbrown_ left
ruoso the other way around would be a FAQ 16:54
skids Though maybe the placeholder case might be a bit iffy.
16:54 cognominal left
ruoso on the other hand.... 16:55
skids (non pointy with placeholders)
ruoso I'm not sure a block that is being returned is really "bare"
skids note the return case worked as a closure, just the fall-off-end didn't.
ruoso rakudo: sub foo { { say 'hello' } }; my $a = foo; say 1; $a.(); say 2;
p6eval rakudo 106452: OUTPUT«hello␤1␤invoke() not implemented in class 'Integer'␤current instr.: '_block14' pc 103 (EVAL_22:57)␤» 16:56
ruoso it's important to realize that "for" has this same semantics applied
a 'bare for' is executed immediatly
but a 'for' being used as the return of a sub, even if implicit, is lazy...
16:56 REPLeffect joined
[particle]- has spectest failures with msvc 16:57
skids And to make things more confusing, there's the caveat about for returning a value :-)
(which newbies won't expect)
TimToady sub postfix:< km>($n) { }; 4 km;
std: sub postfix:< km>($n) { }; 4 km; 16:58
ruoso TimToady, is a block that is being implicitly returned in a sub considered a 'bare block'?
p6eval std 26817: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/iQg9PIMmJw line 1:␤------> sub postfix:< km>($n) { }; 4 km;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤FAILED 00:04
..44m␤»
skids sub foo { { say $^d ~ 'hello' } }; my $a = foo; say 1; $a.(1); say 2;
TimToady std: sub postfix:[' km']($n) { }; 4 km;
p6eval std 26817: OUTPUT«ok 00:03 44m␤»
TimToady that's better
skids rakudo: sub foo { { say $^d ~ 'hello' } }; my $a = foo; say 1; $a.(1); say 2;
p6eval rakudo 106452: OUTPUT«too few arguments passed (0) - 1 params expected␤current instr.: '_block26' pc 296 (EVAL_22:123)␤»
skids ...that's the only case that's iffy in my mind but could go either way.
TimToady ruoso: you can't implicitly return a block 16:59
ruoso you can implicitly return a closure
[particle]- what happens to placeholders in a bare block? warning?
use values from outer scope?
TimToady a bare block as the last statement will not be taken as a return value
17:00 riffraff joined
ruoso TimToady, isn't it a bit inconsistent with the way 'for' is handled? 17:00
TimToady S04: 560 17:01
17:02 mhsparks left
TimToady people's expectations of bare blocks are inconsistent 17:02
sbp gets confused by "Yes, Byte is both a string and a number." in S29:95; Byte derives from AnyChar, which derives from Str... so it's also deriving from Num?
moritz_ "a".sqrt
sbp rakudo: "a".sqrt 17:03
p6eval rakudo 106452: ( no output )
sbp rakudo: say "a".sqrt
p6eval rakudo 106452: OUTPUT«0␤»
Infinoid rakudo: say "a"+1
p6eval rakudo 106452: OUTPUT«1␤»
sbp rakudo: say "a".ord.sqrt
p6eval rakudo 106452: OUTPUT«9.8488578017961␤»
skids sbp: "a" isn't a byte, though. 17:04
sbp nope. and "a".ord is just a Num, not a Str
ruoso rakudo: say 'a' ~~ AnyChar
p6eval rakudo 106452: OUTPUT«Could not find non-existent sub AnyChar␤current instr.: '_block14' pc 59 (EVAL_17:47)␤»
ruoso sbp, rakudo doesn't seem to implement that part of the spec yet 17:05
pugs: say 'a' ~~ AnyChar
p6eval pugs: OUTPUT«*** No such subroutine: "&AnyChar"␤ at /tmp/3XjdvyREaC line 1, column 5 - line 2, column 1␤»
ruoso nor does pug
17:05 cognominal joined 17:08 eMaX left
sbp finds the C<open> implementation in rakudo/src/builtins/io.pir 17:09
couldn't find anything about encoding of files in the Synopses
and the only thing I found about encoding in general was in rakudo.org/2009/01/perl-6-design-mi...-31-d.html which seems to indicate that encoding and decoding within I/O operations hasn't really been thought about yet?
skids so basically rakudo has everything right functionally but the placeholder bare block should be a syntax error not a dispatch error, and could be more specific. 17:11
jnthn [particle]-: (fails in msvc) I get a handful too.
4ish.
[particle]- 2 in S02-magicals/env.t
jnthn (2 about numeric stuff, one weird, one slice.t segv that is know)
[particle]- and the slice.t segv.
jnthn [particle]-: Oh, I thought I pushed a patch yesterday to fix env.t
Yeah, slice.t segv I investigated a bit and wrote a ticket about. 17:12
[particle]- i recall that segv. env.t surprised me a bit
jnthn It's almost certainly GC related.
(the segv, not env.t)
TimToady ruoso: and I wouldn't describe for as caring about its context in that sense. It's only that void context happens to be considered eager.
[particle]- yep
pmichaud skids: (placeholder bare block as syntax error) -- I'm not sure it's a syntax error. It _might_ be a semantic error, or it could be that placeholder blocks should not be treated as immediate blocks. 17:14
TimToady though perhaps void must be considered strictly eager, or "for 1..*" won't work
dalek kudo: cf98479 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 388 files, 11257 passing, 0 failing
17:15
17:15 payload joined
TimToady I suspect a placeholder block should be supported as "non-bare" but disrecommended as devious 17:16
pmichaud how much disrecommended? Generate a warning? ;-) 17:17
"Devious use of placeholder block at ..."
TimToady I'm thinking of posting the culprit's name in the town square, more like...
sbp hmm. p6eval gives me 13025 (i.e. 0x32E1) for "\c[CIRCLED KATAKANA TU]".ord, which is right, but when I read a file from disc with an actual "\c[CIRCLED KATAKANA TU]\n" line in it and then ord what it read, it gives me 227, which is the first byte of CIRCLED KATAKANA TU utf-8 encoded...
so it seems it's just reading bytes and converting them to codepoints... 17:18
and it also seems to do the same the other way round, so "say" just bungs out the unicode characters as bytes (which means you can see the character fine if your locale settings are set to UTF-8) 17:19
moritz_ so there's a decoding step missing on reading. 17:20
pmichaud sbp: You're correct that rakudo doesn't impose any encoding semantics on things read from files yet.
TimToady I absolve in advance anyone who breaks rakudo to fix this :)
or parrot :)
pmichaud TimToady: The "fix" is that files should assume utf8 ? 17:21
TimToady files are assumed to be "text", and that means Unicode
pmichaud works for absolution.
No problem.
That's easily fixed. :-)
17:23 eMaX joined
sbp rakudo: say "\c[CIRCLED KATAKANA TU]\n".chars(); 17:23
p6eval rakudo cf9847: OUTPUT«2␤»
TimToady files that aren't text should generally have their own open-like methods anyway
sbp rakudo: say "\c[CIRCLED KATAKANA TU]\n".bytes();
pmichaud Seems reasonable.
p6eval rakudo cf9847: OUTPUT«Method 'bytes' not found for invocant of class 'Str'␤current instr.: 'parrot;P6metaclass;dispatch' pc 252042 (src/gen_actions.pir:0)␤»
sbp sorry if I'm being thick, but what does it mean for a file to be text/Unicode? 17:24
all files are sequences of bytes, which means that there must be a decoding stage to interpret them correctly as Unicode, i.e. as sequences of Unicode characters
TimToady one of UTF-8, UTF-16LE, UTF-16BE, UTF-32LE, or UTF-32BE
sbp aha, thanks
hmm, I like the idea of referring to files encoded in any of those encodings as text files 17:25
pmichaud for the time being, Rakudo will assume utf8. I'm not sure Parrot supports any of those other encodings yet.
TimToady with a bias towards UTF-8, but if there are nulls, intuiting one of the others is okay, I think 17:26
since I hate BOMs with a passion
(but recognize BOMs too, of course)
ruoso rakudo: my @a = (/ a /, / b /, / c /); my @b = map -> &rx { token { <rx> u } }, @a; my &subrx = sub ($/) { for @b -> &eachrx { my $match = Match.new($/); my $result = eachrx($match); if $result {return $result;}; }; return Match.new($/); }; say 'au' ~~ token { <subrx> }; say 'bu' ~~ token { <subrx> }; say 'cu' ~~ token { <subrx> }
p6eval rakudo cf9847: OUTPUT«␤␤cu␤»
ruoso pmichaud, that's the problem I'm facing... maybe it can be narrowed down a bit more... 17:27
sbp moritz_: Str.bytes is mentioned in your Perl6-Str-0.0.3/lib/Perl6/Str.pm but doesn't seem to be implemented in rakudo yet (see test above). what's the status with that?
17:28 jan_ left 17:32 jan___ joined
pmichaud rakudo: rx() 17:32
p6eval rakudo cf9847: OUTPUT«Could not find non-existent sub rx␤current instr.: '_block14' pc 53 (EVAL_17:43)␤»
ruoso pmichaud, note the signature 17:33
17:33 Kisu left
pmichaud rakudo: my @a = /a/, /b/, /c/; my @b = map -> &rx { token { <rx> u } }, @a; for @b { .WHICH.say } 17:33
p6eval rakudo cf9847: OUTPUT«146001524␤146001524␤146001524␤»
ruoso hah 17:34
there it is
pmichaud well, maybe.
there are some odd things that happen with subs in rakudo.
that might cause them to report odd .WHICH values
ruoso the actual problem is consistent with the WHICH behavior 17:35
pmichaud agreed.
I wonder if the token isn't being cloned properly.
rakudo: my @a = 1, 2, 3; my @b = map -> $rx { sub { $rx.say } }, @a; for @b { $_(); } 17:36
p6eval rakudo cf9847: OUTPUT«3␤3␤3␤»
ruoso hmm... now that was unexpected
pmichaud rakudo: my @a = 1, 2, 3; my @b = map -> $rx { $rx }, @a; for @b { $_.say; } 17:38
p6eval rakudo cf9847: OUTPUT«1␤2␤3␤»
TimToady I suspect we could also recognize SCSU and BOKU compressions of unicode when indicated by BOM
ruoso pmichaud, ok... now *that*'s just weird
pmichaud why is that? 17:39
ruoso ah
sorry...
I thought there was a closure there also
pmichaud the problem comes down to something similar with the given/take one we've described earlier
ruoso rakudo: my @a = 1, 2, 3; my @b = map -> $rx { my $a = $rx; sub { $a.say } }, @a; for @b { $_();
p6eval rakudo cf9847: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ""␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:86)␤» 17:40
pmichaud sorry, gather/take
ruoso rakudo: my @a = 1, 2, 3; my @b = map -> $rx { my $a = $rx; sub { $a.say } }, @a; for @b { $_(); }
p6eval rakudo cf9847: OUTPUT«3␤3␤3␤»
pmichaud as far as map is concerned, the sub { ... } that is returned is the same sub each time
there's nothing there to indicate that it should be cloned
ruoso rakudo: my @a = 1, 2, 3; my @b = map -> $rx { my $a = $rx; my $b = sub { $a.say }; say $b.WHICH; $b }, @a; for @b { $_(); }
p6eval rakudo cf9847: OUTPUT«146329000␤146329000␤146329000␤1␤2␤3␤»
pmichaud yes, we can force a cloning 17:41
ruoso uh?
pmichaud rakudo: my @a = 1, 2, 3; my @b = map -> $rx { my $b = sub { $rx.say }; $b }, @a; for @b { $_(); }
p6eval rakudo cf9847: OUTPUT«1␤2␤3␤» 17:42
pmichaud compare with
rakudo: my @a = 1, 2, 3; my @b = map -> $rx { sub { $rx.say }; }, @a; for @b { $_(); }
p6eval rakudo cf9847: OUTPUT«3␤3␤3␤»
pmichaud so, going back to the original
ruoso pmichaud, the fact it is a closure means it needs to be cloned
pmichaud ruoso: in the general case, if I do return $x does $x get cloned? 17:43
currently no -- it gets placed into a capture
and then it's "cloned" upon assignment to something else 17:44
ruoso but the closures are different in each iteration
by definition
they have a different lexical scope as their outer scope
rakudo: my @a = (/ a /, / b /, / c /); my @b = map -> &rx { my $t = token { <rx> u }; $t }, @a; my &subrx = sub ($/) { for @b -> &eachrx { my $match = Match.new($/); my $result = eachrx($match); if $result {return $result;}; }; return Match.new($/); }; say 'au' ~~ token { <subrx> }; say 'bu' ~~ token { <subrx> }; say 'cu' ~~ token { <subrx> }
p6eval rakudo cf9847: OUTPUT«au␤bu␤cu␤»
ruoso cool 17:45
workaround++
pmichaud ruoso: so, you're saying that return { ... } should always force a clone, while return $some_other_value; shouldn't.
ruoso no... when you declare a closure, it is specific to that moment 17:46
it should be cloned *before* being used in that block
TimToady in theory {...} is always cloned, but sometimes you can optimize it away
pmichaud Yes, I'm thinking we just mis-optimize it at the moment.
17:48 eternaleye left, payload left
pmichaud okay, I think I've found the closure bug. I suspect I'll try to fix it and the outer lexicals issue in PGE 17:53
(the one that currently requires use to use 'token' instead of 'regex')
s/use/us/ 17:54
spectesting the utf8 IO stuff
17:56 icwiener joined
ruoso YAY! Faz' Yarn version works! 17:58
pmichaud lunchtime. 17:59
18:00 ejs left 18:07 icwiener_ joined 18:11 eMaX left 18:12 NoirSoldats_ joined, NoirSoldats left 18:19 Kisu joined 18:20 hercynium joined, ejs joined 18:23 icwiener left 18:41 hercynium left 18:42 eMaX joined 18:51 M_o_C left
dalek kudo: 3f8ff62 | pmichaud++ | src/builtins/io.pir:
Default file I/O to utf8 encoding.
19:01
kudo: 7b56f00 | pmichaud++ | :
Merge branch 'master' of [email@hidden.address]
19:03 nihiliad left 19:06 nihiliad joined 19:07 nihiliad left 19:11 ejs left 19:13 nihiliad joined 19:17 obra joined 19:18 alester left 19:19 ejs joined 19:20 donaldh left, donaldh joined 19:22 pmurias joined 19:31 alester joined
pmurias ruoso: hi 19:37
pugs_svn r26818 | pmurias++ | [re-mildew] pushed method signatures in the right direction - 19:38
r26818 | pmurias++ | t/capture_expansion.t passes
19:38 obra left
pugs_svn r26819 | pmurias++ | [re-mildew] fixed test 19:40
moritz_ rakudo: module Foo { say (1,2,3).map: { $_ } } 19:44
p6eval rakudo 7b56f0: OUTPUT«Parameter type check failed; expected something matching but got something of type Code() for expr in call to map␤current instr.: 'die' pc 17050 (src/builtins/control.pir:225)␤»
19:51 ruoso left
jnthn rakudo: say (1,2,3).map: { $_ } 19:52
p6eval rakudo 7b56f0: OUTPUT«123␤»
jnthn rakudo: module Foo { say (1,2,3).WHAT } 19:53
p6eval rakudo 7b56f0: OUTPUT«List()␤»
19:53 riffraff left
jnthn rakudo: module Foo { say { $_ }.WHAT } 19:54
p6eval rakudo 7b56f0: OUTPUT«Code()␤»
jnthn rakudo: say { $_ }.WHAT
p6eval rakudo 7b56f0: OUTPUT«Block()␤»
jnthn ah ffs
that's why
19:55 nbrown left
pugs_svn r26820 | moritz++ | [t/spec] tests for map inside modules 19:57
moritz_ rakudo: say Block ~~ Code 19:59
p6eval rakudo 7b56f0: OUTPUT«1␤»
jnthn moritz_: yeah, it's not quite that straightforward. :-)
20:08 nihiliad left 20:11 nihiliad joined 20:14 jhorwitz joined 20:19 anon1254 joined 20:20 mizioumt1 joined, anon1254 left 20:22 clintongormley left 20:26 PacoLinux left 20:27 PacoLinux joined 20:31 icwiener-_- joined, icwiener-_- is now known as icwiener 20:34 dduncan joined, dduncan left 20:37 mizioumt2 joined 20:39 mizioumt left 20:47 icwiener_ left 20:53 NoirSoldats joined 20:55 mizioumt1 left, NoirSoldats_ left, jhorwitz left
pugs_svn r26821 | moritz++ | [t/spec] RT #62730 21:04
21:08 DemoPhreak is now known as DemoFreak 21:11 pmurias left 21:14 skids left 21:23 amoc joined 21:25 mizioumt2 left
moritz_ rakudo: my @a := 1; say @a.WHAT 21:26
p6eval rakudo 7b56f0: OUTPUT«Int()␤»
21:33 icwiener left 21:36 mberends left 21:39 masak joined
masak oh hai, kittehs. 21:39
whoz op? 21:40
moritz_ how to mkae now chanle??? 21:41
masak :)
21:41 ejs left
masak I just blogged about w7 of Web.pm: use.perl.org/~masak/journal/38973 21:42
(I hope I didn't forget anything, there was so much happening this week) 21:43
PerlJam masak: do you do the preambles by hand or is there some place you get them from? 21:44
masak PerlJam: www.lolcatbible.com/index.php?title=Matthew_5
PerlJam: crazy, huh? :) 21:45
PerlJam indeed.
moritz_ wonders if shlomi finds those offensive ;-)
PerlJam heh
masak they translations are not always tasteful, but I try to filter out the interesting bits. 21:46
s/y//
iluvs2pac hi how iz compiler formed?
how world get prel6?
masak iluvs2pac: a Perl 6 compiler?
I think we've just sunk to a new low. :) 21:47
jnthn Delighted to be a part of it. :)
Will Rakudo Day on Friday.
moritz_ ;-)
masak not that I'm complaining. I love the contrast between exquisite parser discussions and lolspeak.
jnthn: \o/
jnthn Not had Rakudo time today - dealing with $other_stuff. 21:48
But hopefully get back to working on other stuffs tomorrow.
masak I haven't backlogged yet -- any news on those operator overlords? 21:49
jnthn pmichaud is our operator overlord ;-)
moritz_ masak: no
jnthn masak: not seen any news though
masak ok.
masak sits tight 21:50
moritz_ wonders about implementing infix:<ff>
jnthn I suspect other distraction (like, the one involving grammar.pg and Latin-1) haven't helped...
pmichaud I'm about this > < close to having operator definitions in Perl 6.
jnthn moritz_: I'd wondered about that too.
moritz_ things is, that operator needs state internally
masak aye.
pmichaud I've already gotten it to parse &infix:<+> and the like.
jnthn pmichaud: The angles go the other direction. ;-)
moritz_ and it needs to have that state separately for each source code locations it appears in
pmichaud jnthn: when the angles swap sides, then it'll be done :-) 21:51
jnthn pmichaud: Really happy you got it parsing that bit at least. :-)
moritz_ I don't see a way to declare such a thing in Perl 6
pmichaud yes. Right now I'm just figuring out how to add things to the optable.
jnthn moritz_: Global is a bit ugly too.
moritz_: Consider for 1..$big_number { eval('1 ff 2') } 21:52
masak moritz_: it feels like it should have something to do with closures, just like that canonical incrementer example.
jnthn masak: It can be attached to the current block but we need to be damm sure we clone it along with the current block. 21:53
moritz_ jnthn: global won't work either, unless infix:<ff> know its caller's source location (including column information)
jnthn moritz_: True. I think it maybe wants to hang off the enclosing block.
meppl good night
moritz_ jnthn: I don't understand what that means
masak jnthn: you just tipped me off to another evil way to break Rakudo when the time comes. :)
meppl: 'night. 21:54
jnthn moritz_: I mean, maybe we should associate the state of the flip-flop with the block.
moritz_: Then we only need a block-unique identifier, and those aren't so hard.
meppl ;)
moritz_ jnthn: would that work with two ff ops in a block? 21:55
masak gosh, I sure hope so.
21:55 meppl left
jnthn moritz_: For sure. I'm not being very good at explaining here. :-) 21:55
moritz_ jnthn: is it something that can be (theoretically) written in pure Perl 6? 21:56
jnthn moritz_: I meant that the storage for all of the flip-flops in a block would be associated with that block, and we'd just generate a unique ID for each flip-flop, but it only has to be unique to that block, not globally.
moritz_ jnthn: ah 21:57
jnthn moritz_: If we implement can do &CALLER::?BLOCK
moritz_: Then you can mix in a role with a storage location (e.g. a hash) perhaps.
Though then the unique identifier for it is still a bit tricky.
moritz_ another idea might be a macro
because a macro can have local storage per "call" 21:58
jnthn yeah, but when you do a macro you lose the multi-dispatch.
And thus ff becomes not overloadable.
moritz_ multi macros? ;-)
jnthn Ssshhh!
masak :)
protomacros. 21:59
moritz_ the macro could store the state, and re-dispatch to an ordinary multi
jnthn Yeah, perhaps.
It is an interesting question though, how to get the unique identifier for the operator.
.oO( caller's bytecode program counter )
22:00
moritz_ is sufficiently convinced by the macro idea that he doesn't have to write a mail to p6l
jnthn
.oO( oh, that's not really pure Perl 6 :-) )
masak oh noes, midnight!
jnthn Welcome to Thursday.
masak I kinda liked Wednesday... :/ 22:01
jnthn You can have another one next week.
They're a renewable resource.
masak yes, but given the rate at which we're consuming them...
I'm not sure how long they'll last. 22:02
moritz_ masak: I'm sure the calendar FAQ that mberends linked to earlier today has an answer to that ;-)
masak anyway, off to bed with me. I have to at least pretend to be doing something about my wretched sleep habits of late.
jnthn masak: Enjoy going to bed with you. 22:03
moritz_ good night masak
jnthn night
masak good night. it was nice speaking to you.
22:03 masak left
jnthn pmichaud: BTW, does this mean that you've got multi trait_auxilliary:is($x, $y) { } parsing too? ;-) 22:04
pmichaud no.
moritz_ :<is> please ;-)
pmichaud trait_auxiliary:<is> would parse, yes.
jnthn Oh, yes
That's the one I meant.
:-)
OK, I'm happy.
We can haz traits. 22:05
pmichaud it doesn't add it into the parser.... but 'is' is already in the parser.
22:05 iblechbot left
jnthn The "adding to the parser" bit for traits ahdn't occured to me so much. 22:05
It's more declaring overloads of existing ones.
pmichaud sure, that'll work. I have that part working already also :-) 22:06
the "adding into the parser" is the current obstacle -- not huge, just requires a bit of fiddling around at compile-time to make it happen.
jnthn std: multi trait_auxiliary:<foo>($x, $y) { }; my $x is 42; my $y foo 42;
p6eval std 26821: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/RObLCBh6VC line 1:␤------> t_auxiliary:<foo>($x, $y) { }; my $x is 42; my $y foo 42;␤ expecting name␤FAILED 00:03 38m␤» 22:07
jnthn std: multi trait_auxiliary:<foo>($x, $y) { }; my $x is Int; my $y foo Int;
p6eval std 26821: OUTPUT«##### PARSE FAILED #####␤Syntax error (two terms in a row?) at /tmp/PvqgrspKv9 line 1:␤------> o>($x, $y) { }; my $x is Int; my $y foo Int;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤ terminator␤
.. trait␤FAILED...
jnthn Heh, std doesn't allow that either.
moritz_ jnthn: I think I gave TimToady a bit of a headache with that one
pmichaud afaict, std only handles infix:, postfix:, prefix:, etc. at the moment
jnthn Aye.
pmichaud I might not have seen the code that handles the other.
jnthn That's quite enough for now. :-) 22:08
pmichaud std also doesn't seem to handle the assoc, equiv, tighter, or looser traits yet.
jnthn Ooh, does that mean we might be a bit ahead of std? ;-)
pmichaud i.e., all infix: operators are treaded as equiv(&infix:<+>)
jnthn (on that issue...)
pmichaud yes, I'm aiming for supporting at least equiv
jnthn woo
pmichaud++
pmichaud if I can get that to work, tighter/looser/assoc won't be far behind. 22:09
22:09 LadyLunacy joined
moritz_ fwiw, pugs never did the precedence/associativity traits either 22:09
pmichaud we may run into a few issues with postfix: ops, though, dealing with precedence.
jnthn At the PGE/Rakudo level, or in a wider Perl 6 sense? 22:10
pmichaud PGE/Rakudo level
TimToady++ has already solved it in STD.pm, but that solution doesn't map well to PGE's current operator parser
it would've been a lot nicer to implement PGE after STD.pm was written, instead of before. :-) 22:11
pugs_svn r26822 | moritz++ | [t/blocks] remove outdated tests 22:12
r26822 | moritz++ |
r26822 | moritz++ | The recent spec changes imply that it should be re-written in terms of
r26822 | moritz++ | augment slang MAIN { ... }, which would be quite different from what it looked
r26822 | moritz++ | like now
moritz_ 64 test files remaining that needs review wrt moving to spec/ 22:14
with less than 300 individual tests in total
jnthn Impressive!
moritz_ (in contrast: t/spec is 589 files, 16.5k tests)
pmichaud really? There are that few tests left to go? 22:15
moritz_ pmichaud: really.
pmichaud so the total size of t/spec is upper-bound by 16.8k?
jnthn Once I've got traits and deference in, I plan to go through S12-* and S14-* and see what's left.
pmichaud (as it exists today, that is)
moritz_ (the individual test counts are done by grepping for plan \d+, so not too reliable, but right order of magnitude) 22:16
jnthn: I leave t/oo/syntax-but.t for you to review ;-)
jnthn moritz_: OK, pester me if I forget. :-) 22:17
22:17 lichtkind_ joined
moritz_ I'm a bit at loss what to do with t/perl5/ 22:17
it contains Perl 5 code in '{ use v5; ... }' blocks
should I make that S01-Perl-5-integration/ or so? 22:18
jnthn moritz_: Oh, for testing Perl 5 / Perl 6 integration?
22:18 LadyLuna2y joined
moritz_ jnthn: right 22:18
jnthn S01-Perl-5-integration sounds like a sane name for it. 22:19
moritz_: Do you know how much of it Pugs managed to pass, btw?
moritz_ jnthn: quite a few, at some point
22:20 LadyLuna1y left
moritz_ jnthn: I remembered I once loaded a non-XS perl 5 module from within pugs, and it sort of worked 22:20
(linked against libperl, and with some internal bridge)
22:20 lichtkind left, lichtkind_ is now known as lichtkind
jnthn Looks like it's ~75 tests. 22:21
moritz_ actually it's all eval($str, :lang<perl5>)
but still
jnthn aye 22:22
That's a bit easier to handle.
(Doesn't need parser assistance.)
moritz_ aye
modify_inside_p5_p6.t being an exception
but it uses something that's both valid Perl 5 and Perl 6
(just with different semantics each) 22:23
jnthn *nod*
pugs_svn r26823 | moritz++ | [t] move perl5/* to spec/S01-perl-5-integration/ 22:25
r26823 | moritz++ |
r26823 | moritz++ | (Didn't review them all, but the ones I looked at were rather sane)
22:26 LadyLunacy left
moritz_ ok, 52 files left ;-) 22:26
22:29 hercynium joined 22:30 alester is now known as alester_away 22:33 raiph_ joined
moritz_ bed time for me 22:34
22:35 payload joined
raiph_ g'night 22:35
22:40 justatheory left
raiph_ tene: i'd like to call your attention to pleasedieinafire.net:2080/post/9 22:41
22:42 payload left, payload joined 22:43 justatheory joined 22:48 Ariens_Hyperion joined 22:49 nihiliad left 22:50 Ariens_Hyperion left 22:51 payload1 joined 22:52 payload left 23:05 skids joined 23:20 donaldh left, donaldh joined, nbrown joined 23:27 vx64z joined, mib_zwepfp joined 23:28 mib_zwepfp left 23:30 eMaX left, eMaX joined 23:32 nbrown_ joined 23:38 lichtkind left, exodist left 23:45 VX left 23:46 nbrown left, nbrown_ is now known as nbrown