»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 25 June 2010.
[Coke] phenny: tell moritz_ that I added tadzik. 00:00
phenny [Coke]: I'll pass that on when moritz_ is around.
[Coke] masak++
00:02 Psyche^ joined
lue I wonder how hard it would be to create a 4D visualizer in P6... 00:02
masak would you need two sets of polarizing glasses to view the result? 00:05
TimToady you just need a single 3-dimensional polarizer
00:05 Patterner left, Psyche^ is now known as Patterner
lue Reason being that I can't find a decent set of pictures of a glome :/ 00:07
.oO(And I'm out of 4D graph paper)
00:08
rakudo: my Set @a = 1,3,2; say @a; 00:10
p6eval rakudo df38ac: OUTPUT«132␤»
lue rakudo: my Set @a = 1,3,2; say @a.WHAT;
p6eval rakudo df38ac: OUTPUT«()␤»
lue rakudo: my Set $a = 1,3,2; say $a.WHAT;
p6eval rakudo df38ac: OUTPUT«Type check failed for assignment␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/MVjx18DVig␤»
lue rakudo: my $a = Set.new(1,2,3); say $a.WHAT; 00:11
p6eval rakudo df38ac: OUTPUT«Set()␤»
lue where's the definition of Set? [the one in S32::Containers contains much less than what's in src/core/Set.pm] 00:13
Grr. I'm finding it hard to use Set. (mainly because my Set @a doesn't dwim) 00:18
masak lue: it doesn't really make sense to positionally access a Set. 00:22
I blogged: use.perl.org/~masak/journal/40516
lue ah. (I think since Sets and Arrays both contain a group of things, I expect an array variable could be a set) 00:23
00:25 eternaleye left, eternaleye joined
masak lue: you don't seem to be alone in that. in fact, the '@' sigil feels like a sort of half-match for the job. 00:25
lue great blog post masak. I actually think it's fun to (freak out|stun|amaze|*) people. :) 00:28
masak me too.
I just didn't expect it in this case. I had to explain to myself why they freaked out.
my tolerance to stacking of Perl 6 concepts has definitely risen :) 00:29
lue In my mind [at least how I'd like it to be :)], $ variables contain single items, @ variables a group of items, and % variables a 'dictionary' of items.
00:31 fod left
masak lue: s/group/an ordered collection/ 00:31
lue
.oO(not like I expect the foundations of the language to change just so my brain feels better :) )
00:34
masak I told you people would like the REPL :) twitter.com/jasonnoble/status/22221223964
lue: it's been known to happen. :) 00:35
00:35 Italian_Plumber joined
lue What bug me with using $ variable for Set (specifically), is that I can't say things like my Set $a; , instead my $a = Set.new(); . 00:36
masak you can say 'my Set $a .= new();' 00:37
lue Alright. .oO(I'll save a detailed discussion of $/@/% for (later&p6l).) Would it be unreasonable to have a powerset method for Set? 00:40
masak I don't see an urgent need for it in core.
then again, I don't see an urgent need for Set (or Bag) in core, either.
depends on the degree to which we want batteries to be included, I guess. 00:41
lue When I saw things like union and intersect in Set.pm, I thought powerset could be included in the core as well.
00:42 drbean joined
masak could be. 00:42
it is one of those things that when you need it, you really need it. 00:43
00:47 bythos joined 00:51 whiteknight left 00:52 masonkramer left, masonkramer joined
masak 'night, #perl6 00:53
00:53 masak left
lue afk 00:55
01:05 lue left 01:08 alester joined 01:09 justatheory joined 01:10 Italian_Plumber left 01:11 Italian_Plumber joined, dduncan joined 01:12 sekimur__ left 01:13 dduncan left 01:20 jaldhar joined 01:23 jaldhar left 01:27 ruoso joined 01:39 tylercurtis joined 01:56 \xF0 left 01:57 \xF0 joined 01:58 masonkramer left 02:01 justatheory left
tylercurtis sorear: based on the backlog, it sounds like you agree that RT #77022 is a bug. 02:11
02:12 leprevost joined 02:18 bjarneh left 02:20 kid51 left 02:25 justatheory joined
gfldex std: say "{"flap" xx 3}"; 02:25
p6eval std 32107: OUTPUT«ok 00:01 117m␤»
gfldex rakudo: say "{"flap" xx 3}";
p6eval rakudo df38ac: OUTPUT«flap flap flap␤»
gfldex perl6++ :) 02:26
02:27 alester left
TimToady RT #77022 is not a bug, but the explanation given is incorrect 02:32
all parses start at position A and progress till they return position B
there is no scanning implicit in subrules, nor is there any anchoring
it *appears* to be anchored to the beginning merely because that's the first position passed to TOP 02:33
if you want it anchored at the end, you must do so explicitly
02:33 azert0x left
TimToady otherwise the grammar will assume that some other grammar wants to take up where it left off 02:34
the scanning done by higher-level matchers is a function of .match, .subst, m//, etc
not a function of the grammar 02:35
tylercurtis Thanks for clearing that up, TimToady++. 02:36
TimToady we played with various other models, but this seems to be the most composable 02:37
02:42 agentzh joined 02:47 jaldhar joined 03:01 BaggioKwok joined 03:09 risou joined, ash_ left 03:15 BaggioKwok left 03:18 ash_ joined 03:22 justatheory left, Italian_Plumber left 03:37 Italian_Plumber joined, Italian_Plumber left 03:41 alester joined 03:53 risou left 03:56 lue joined 04:04 ash_ left 04:07 plobsing left 04:18 patspam left 04:19 molaf joined
[Coke] has anyone familiar with the rakudo's C guts looked at the latest post on TT #1746? 04:21
04:22 sftp joined 04:24 justatheory joined
[Coke] phenny: tell moritz to please respond to TT #1613 04:32
phenny [Coke]: I'll pass that on when moritz is around. I'll have to use a pastebin, though, so your message may get lost.
[Coke] phenny: tell yourself to implode. 04:33
phenny [Coke]: I'll pass that on when yourself is around.
04:36 molaf left 04:45 zorgnax joined 04:46 kaare joined, kaare is now known as Guest57048 04:51 bythos left
tylercurtis Hmm: "say 'Executed successfully' if run('ls');" outputs the output of 'ls', but it doesn't output 'Executed successfully'. 05:14
[Coke] rakudo: say run('ls') 05:19
Tene rakudo: my $a = run('ls > /dev/null'); say $a.perl;
p6eval rakudo df38ac: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/OGuZDI2JQG␤ in main program body at line 22:/tmp/OGuZDI2JQG␤»
rakudo df38ac: OUTPUT«Operation not permitted in safe mode␤ in 'Safe::forbidden' at line 2:/tmp/g18kJS6dHn␤ in main program body at line 22:/tmp/g18kJS6dHn␤»
[Coke] (it returns 0)
Tene There's another way to get the output if that's what you're going for, but I don't recall. 05:21
q:x or something?
TimToady rakudo: sub rot13 ($s) { $s.trans('A..Za..z' => 'N..ZA..Mn..za..m') }; print rot13 $*IN.slurp; 05:23
p6eval rakudo df38ac: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤ in 'rot13' at line 22:/tmp/VXhkXJLzqp␤ in main program body at line 22:/tmp/VXhkXJLzqp␤»
TimToady rakudobug 05:24
workaround:
rakudo: sub rot13 ($s) { $s.trans('A..Za..z' => 'N..ZA..Mn..za..m') }; print rot13 ~$*IN.slurp;
p6eval rakudo df38ac: OUTPUT«Ynaq qre Oretr, Ynaq nz Fgebzr,␤Ynaq qre Äpxre, Ynaq qre Qbzr,␤Ynaq qre Uäzzre, mhxhasgfervpu!␤Urvzng ovfg qh tebßre Föuar,␤Ibyx, ortanqrg süe qnf Fpuöar,␤ivrytreüuzgrf Öfgreervpu,␤ivrytreüuzgrf Öfgreervpu!␤␤Urvß hzsruqrg, jvyq hzfgevggra␤yvrtfg qrz Reqgrvy qh vazvggra,␤rvarz
..fgnex…
TimToady slurp is apparently returning something that is not a Perl string
rakudo: $*IN.slurp.WHAT.say 05:25
p6eval rakudo df38ac: OUTPUT«Str()␤»
TimToady rakudo: $*IN.slurp.Parrot.say
p6eval rakudo df38ac: OUTPUT«Method 'Parrot' not found for invocant of class 'String'␤ in main program body at line 22:/tmp/fcJssxgeKJ␤»
TimToady rakudo: $*IN.slurp.PARROT.say
p6eval rakudo df38ac: OUTPUT«String␤»
[Coke] rakudo: say "goodnight, gracie" 05:26
p6eval rakudo df38ac: OUTPUT«goodnight, gracie␤» 05:27
05:27 zag joined
tylercurtis [Coke]: it does return 0 on success. But, according to S29, the return value of run in a Boolean context is true for success and false for failure. 05:27
[Coke] tylercurtis: you didn't give it a boolean context. 05:28
(not that ?run works either.)
or is "if ..." implicitly boolean?
(which woudl make sense)
tylercurtis [Coke]: I'd expect if to be boolean context. Even if not,... right, .Bool or ? doesn't work either. 05:29
[Coke] anywayz, zzzz
diakopter rakudo: say 2 [xx] 5 05:30
p6eval rakudo df38ac: OUTPUT«22222␤»
diakopter rakudo: say 2 [[x]] 5 05:32
p6eval rakudo df38ac: OUTPUT«22222␤»
diakopter :/ 05:33
TimToady what's the matter with that? 05:35
or is the problem that it *didn't break? :) 05:36
05:39 shade\ left 05:41 shade\ joined 05:49 alester left 05:57 Guest57048 is now known as kaare_ 06:00 wtw joined 06:01 bpalmer joined
moritz_ mornin' 6folks 06:07
phenny moritz_: 00:00Z <[Coke]> tell moritz_ that I added tadzik.
lue how do I do a left bit rotation? [I remember there being an operator to do it] 06:13
06:15 uniejo joined
Tene $val ↑↑↓↓←→←→ $howmany 06:24
lue std: 'a' +<< 1 06:29
p6eval std 32107: OUTPUT«===SORRY!===␤Unable to parse quote words at /tmp/MDTveqGgpN line 1:␤------> 'a' +<⏏< 1␤Couldn't find final '>'; gave up at /tmp/MDTveqGgpN line 1 (EOF):␤------> 'a' +<< 1⏏<EOL>␤Parse failed␤FAILED 00:01 116m␤»
TimToady you must be remembering some C variant; there's no such operator in Perl 6
or you're remembering @array.rotate 06:30
there's a :rotate adverb specced for bit shifts, but rakudo doesn't implement adverbs
lue Well, everything I look at talks about +<< or +< and so on being in Perl 6 06:32
06:35 justatheory left
lue std: 'a' ~< 1 06:38
p6eval std 32107: OUTPUT«ok 00:01 116m␤»
lue rakudo: 'a' ~< 1
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Confused at line 22, near "'a' ~< 1"␤» 06:39
lue I guess I'll have to ask about all that tomorrow. Goodnight o/
06:44 fxstor joined 06:45 mberends left, fxstor left 06:53 sftp_ joined 06:54 sftp left
moritz_ masak++ # use.perl.org/~masak/journal/40516 07:01
sorear tylercurtis: #77022 has spectests and the reason given for rejecting it is nonsense 07:05
tylercurtis: S05, the prose version, is not completely clear on the issue 07:06
but the tested version is the most useful
tylercurtis sorear: ooc, which spectests specify that grammars anchor to end of string? 07:07
07:09 zulon joined
sorear S05-grammar/parse_and_parsefile.t the first couple 07:11
the tests are bad because they test two things at once
07:12 erez joined
tylercurtis I don't see how any of the tests there test whether it anchors to end of string. The first one tests relies on Grammar.parse anchoring to either the beginning or the end of the string, but not to both. 07:14
s/The first one tests/The first one/ 07:17
07:20 ejs joined 07:22 fda314925 joined 07:28 zulon left 07:46 shade\ left 07:47 shade\ joined 07:59 daxim joined 08:11 Mowah joined, Mowah left, Mowah joined 08:23 CTAPOMAK joined 08:36 drbean left 08:40 thebird joined 08:42 tylercurtis left 08:44 dakkar joined, PZt left, cjk101010 joined
smash_ mornin' 08:44
08:48 oyse joined 08:53 Mowah left 08:54 stepnem left 08:56 fridim left 09:09 pnate joined 09:11 dju left 09:12 dju joined, fridim joined 09:14 yves_ joined 09:19 leprevost left 09:20 leprevost joined 09:24 fridim left 09:25 fridim joined
itz laughs at the disk space whine "bug" 09:27
09:40 masak joined
masak oh hai, #perl6! 09:40
daxim O HAI, exalted one 09:48
09:49 bpalmer left 09:51 meppl joined
masak lunch & 09:51
smash_ masak: hi 09:52
09:54 whiteknight joined 09:58 wamba joined 10:01 zulon joined 10:05 masonkramer joined
pmichaud good morning, #perl6 10:06
10:07 dju left, dju joined 10:08 thebzu is now known as m6locks
smash_ pmichaud: mornin' 10:08
10:08 timbunce joined
cjk101010 hey guys :) I'd like to get involved with perl6/rakudo. But I don't really know what to do. Any hints? Tips? 10:08
pmichaud cjk101010: we can always use modules and/or applications 10:10
10:10 tadzik joined
pmichaud cjk101010: those quickly point out areas where things need to be fix (and possibly places that you could start fixing things :-) 10:10
*fixed
10:11 cL0h joined
cjk101010 hm, my problem is: I'm missing ideas what to write ;-) But ok, I will find something… maybe a fastcgi interface. is there a list of existing perl6 modules? 10:11
pmichaud modules.perl6.org, I believe.
cjk101010 ah. cool, thanks. 10:12
pmichaud even just fixing up or improving some existing modules is probably a good place to start :-)
10:12 cL0h left, leprevost left
smash_ pmichaud: still haven't fixed the ABC example, can't find where the Undef rule is coming from 10:12
tadzik oh hello 10:13
phenny tadzik: 26 Aug 22:52Z <masak> tell tadzik that I got json to install again with the latest changes to pls/poc :)
tadzik masak: taking a look
pmichaud smash_: it's not an Undef rule, it's an Undef object. That's the default value of .ast if not set. 10:14
10:16 zby joined, zag left
smash_ pmichaud: right, what i can't figure out is where the Undef object is coming from ? 10:16
s/from ?/from/
pmichaud if you can nopaste code/output, I might be able to help.
tadzik masak: it did install even with my Q&D patch, but good we have a proper solution now
smash_ pmichaud: gist.github.com/553150 10:19
oyse Hi. I am looking at blizkost and trying to find a good concrete task I can work on. Anyone here that provide some good pointers of where to start? I got some tips a few weeks ago, but nothing concrete enough that I can start coding something. 10:21
pmichaud smash_: looking 10:22
10:22 patrickas joined
smash_ pmichaud: thank you, no hurry 10:22
pmichaud smash_: found it 10:24
smash_: since ABC::Actions is inheriting from HLL::Actions, you're also getting the action method for <integer>
smash_ oh, then i need a make to it 10:25
pmichaud so, you could either leave off the "token integer" from the grammar (and use the one that comes from HLL::Grammar), or add an action method for <integer> (it doesn't have to do anything other than override the existing one)
the integer method you're inheriting is 10:26
method integer($/) { make $<VALUE>.ast; }
src/HLL/Actions.pm:124
and the .ast you're getting is from the non-existent $<VALUE>
smash_ nods. 10:27
right 10:28
dalek p-rx: 20477be | pmichaud++ | src/NQP/Actions.pm:
Refactor 83747bd to avoid the "skip_multi" flag on PAST nodes.
10:33
tadzik oyse: have you seen the blizkost examples?
oyse tadzik: no 10:34
tadzik: taking a look now. Do they contain some possible starting points?
tadzik oyse: see for yourself. Depends on what you want to do 10:35
smash_ pmichaud: all woring perfectly now, thank you 10:37
nqp-rx++
oyse tadzik: I want to make blizkost good enough to use in a production setting :) Ok, so that is probably quite far off, but anything that will move in that direction is ok for me. 10:38
smash_ s/woring/working/ # damn keyboard
oyse tadzik: I made some test for my self and see that returning list values from Perl 5 does not work. But that is probably a bit hard to solve as a first task :) 10:39
tadzik: But working in PIR and Parrot guts is ok for me. Even though I know neither of them. 10:40
tadzik oyse: you'll have to talk to jnthn++ about blizkost, but he's on vacation now. Maybe there is someone with a knowledge about blizkost, I don't know 10:41
oyse tadzik: Ok. When will he be back? 10:42
smash_ pmichaud: also i have set it up with the building script and all: $ perl Configure.pl --gen-parrot && make && ./abc-nqp and everything works great
tadzik oyse: Week and a half, iir 10:43
* iirc
oyse oyse: ok. thanks for the help
ups
tadzik: ok. thanks for the help
tadzik you're welcome
10:45 pnate left 10:47 Mowah joined 10:48 rindolf joined 10:50 sftp joined, sftp_ left
oyse Does anyone know if there exists an Eclipse plugin for working with .pir files? 10:56
smash_ oyse: there is one for vim under editors/ in parrot repository, not sure if there is something for eclipse 10:59
arnsholt oyse: Not as far as I know. The people in #parrot on irc.perl.org might know though 11:03
11:20 azert0x joined 11:27 Trashlord left
masak positive comment from someonw who knows Haskell: use.perl.org/comments.pl?sid=45070&cid=72354 11:27
s/onw/one/ 11:29
I'm still considering what to reply to this negative comment: use.perl.org/comments.pl?sid=45070&cid=72352
11:30 Trashlord joined
masak it basically 'takes the bait' the the article trolls about. :) 11:30
s:2nd/the/that/
x3nU i wonder is anyone going to create r* 8.2010 installer for windows?
11:31 agentzh left
masak who did last time? jnthn? 11:33
pmichaud jnthn++ did it last time, and unfortunately he's on break. 11:34
I didn't remember that until it was too late. :-|
11:34 ruoso left
pmichaud masak: (negative comment) I'm not sure it needs a reply. 11:37
11:37 stepnem joined
masak ok. 11:37
can that be argued not only from the perspective of a Sixer, but also from the perspective of a Fiver, who might not yet be convinced Perl 6 hasn't jumped the shark? 11:38
pmichaud I think so (more) 11:40
from a p5 perspective, I guess I'd want to know "okay, how could this be expressed better in p5?" 11:41
so, thinking about it that way, perhaps the response is to turn it around and ask the question: how would you express the answer to this problem, then?
masak can I ask that? 11:43
masak would like to
pmichaud I don't know.
But the negative comment says "this is totally readable", so perhaps the question is "how to make it more readable?"
s/totally readable/totally unreadable/
masak "I'd be interested to see how your ideal solution to this problem would look." 11:44
pmichaud I certainly don't find the Perl answers to Pascal's triangle to be more readable than the p6 one
masak ooh, I haven't checked them at Rosetta code!
masak does it now
pmichaud another idea kernel I've been having is that Pascal's triangle is inherently from the mathematics domain, it's quite appropriate that p6 provides a mathematical-looking solution 11:45
arnsholt The ideal solution is obviously "my @pascal = pascal_triangle()"
Just like "say do_my_homework()" should obviously be added as well ;) 11:46
s/added/work
masak arnsholt: can't use assignment there, but binding might work.
pmichaud but just because there's a mathematic-looking solution for ths problem doesn't mean that all p6 answer will be equally mathematical
masak pmichaud: indeed.
pmichaud actually, I think we *can* use assignment there -- it's just that some of our internals aren't properly lazy yet
masak ah.
arnsholt Quite. Strange how mathematical stuff tends to look like math =)
masak I think people are being slightly put off by the maths example.
"You optimized Perl 6 for *mathematics*? You bastards!" 11:47
"I don't do maths in my job. I do production stuff!"
I think that's the core of the complaint, actually.
pmichaud answer: "We optimized Perl 6 for writing mathematical solutions to mathematical problems. Problems in other domains would look different."
masak aye. 11:48
pmichaud or, more precisely, "Answers to problems from other domains would look different."
afk for a bit
masak Answers to problems from other domains would look like the languages people in those domains are used to thinking in.
pmichaud (have to get kids to school) 11:49
huf i think people are just wedded to their explicit loops 11:51
frettled pmichaud++ — I think that way of putting it would be constructive.
masak nofeed.org/post/1018387893/i-was-th...e-ruby-2-0 11:52
frettled hee-hee :)
11:54 sftp left, sftp joined 11:56 Italian_Plumber joined 11:57 envi^home joined
masak can't find any such comp.lang.ruby post, though :) 11:59
frettled Me neither, and I've searched. 12:00
Perhaps it was paraphrased, or in an old post.
12:03 zulon left
tadzik masak: whose quote is that? 12:03
masak tadzik: we don't know. 12:04
tadzik Maybe it's Matz :P
12:09 jfried joined, drbean joined
masak :) 12:21
pmichaud my response: use.perl.org/comments.pl?sid=45070&cid=72355 12:24
12:26 tadzik left
huf srsly, hanging on this channel has taught me how to be nice 12:31
in theory at least.
12:31 PZt joined
baest pmichaud++ # very good response 12:35
masak huf: :) 12:36
12:36 stepnem left
huf my natural reaction to that comment would have been biel 12:36
bile
which isnt very productive from any standpoint
12:38 Holy_Cow joined 12:39 stepnem joined
pmichaud When people have asked me about making programming languages "more readable", I've often reflected on the fact that there are many non-programming domains that end up adopting specialized symbols and notations. Aviation, medicine, chemistry, physics, spaceflight, etc. -- all of these end up with "custom languages" that can be quite opaque to newcomers. (more) 12:40
That opacity isn't (usually) a goal; it's just an unfortunate side effect of having more effective communication among experts.
What Perl 6 hopefully allows us to achieve is something that can be usable by newcomers, but more powerful and expressive as they become experts. 12:41
(end of soapbox) 12:42
huf yeah, it's useful to have languages that are easy to pick up (for your fist language)
but not all of them *have* to be like that
timbunce Should my |$retval := callsame; work currently? I'm getting Malformed my at line 60, near "|$retval :"
pmichaud I'm pretty sure it doesn't work currently.
huf altho i'm guessing someone will find a consistent subset of p6 that's easy to teach to complete beginners 12:43
that, or write one inside p6
timbunce pmichaud: any workarounds? (I'm trying to use some code jnthn++ gave me gist.github.com/552139 and extend it to log the return from a method) 12:44
pmichaud maybe my $retval = (callsame).Capture ? 12:45
I'm not sure.
12:45 zulon joined
pmichaud seems like that might work... but I'm a bit rusty when it comes to the specific of the call/return semantics yet 12:45
12:46 ruoso joined 12:47 sftp_ joined
[Coke] masak++ # idiotic perl6 post. 12:47
12:47 sftp left
[Coke] masak++ # idioMAtic perl6 post. 12:47
masak *lol* 12:48
timbunce pmichaud: it compiles, but both return |$retval; and return $retval; cause Method 'executeQuery' not found for invocant of class 'Capture'
pmichaud: so do I need something different at the return statement? 12:49
[Coke] wonders if Tadeusz is like Thaddeus.
timbunce pmichaud: (ie return is returning the Capture not the thing inside the capture)
pmichaud I would expect return |$retval to work. 12:50
timbunce pmichaud: that gives me Method 'executeQuery' not found for invocant of class 'Parcel'
pmichaud right.
that's.... weird.
executeQuery is one of the methods you've written?
12:51 kaare_ left
timbunce my rakudo is at least 3 weeks old, in case that's relevant 12:51
pmichaud: yes, invoked on the return value of the method being wrapped
pmichaud I'm going to guess we have our wrapping/unwrapping a bit wrong there. You might try invoking executeQuery on .[0] 12:52
(of the returned Parcel)
cjk101010 is there a way to reduce the startup time of the perl6 binary? real 0m1.898s is somewhat much… 12:53
pmichaud cjk101010: we're working on it. It's a deep problem.
timbunce pmichaud: the wrapping has to be transparent or it's not worth using. Any fix needs to be in the wrapping code.
cjk101010 ok… thanks for the info.
pmichaud timbunce: the .[0] will still work even after the wrapping is fixed.
12:53 ruoso left
masak 'Constants? Perl programmers laugh at them. "Final"? Larry said that's a bad idea. But you will have in Perl6, anyway.' -- groups.google.com/group/comp.lang.r...4e7eb08886 -- always interesting to see Perl 6 with an outsider's eyes. 12:53
pmichaud but I agree that the fix needs to be in the wrapping code... it's just that jnthn++ is the one who normally handles anything dealing with binding and parameter passing, and I'm a bit rusty on it. :) 12:54
perhaps we can golf it down to a smaller issue
timbunce pmichaud: ok, but I'm wrapping *everything* automatically. I'd rather not have to write .[0] on every method call in the code!
pmichaud agreed.
I see your point (and in a big way)
timbunce pmichaud: I can wait.
pmichaud let me think about it a bit more today and see if I can figure out what's happening. It's likely to be either trivial or really hairy 12:55
timbunce pmichaud: I'd be happy if there was a way to just log that the method has returned, without caring about the return value. Perhaps something done with control exceptions?
pmichaud that might work, but I fear our control exception handling may be equally dodgy 12:57
masak today's Dinosaur Comics is on topic for #perl6: www.qwantz.com/index.php?comic=1786 12:58
12:59 pnu left
pmichaud I think it's more likely we'll get return values working before we get exception handling, fwiw. 12:59
timbunce pmichaud: ok, thanks. 13:00
pmichaud What you've provided is enough for me to play with a bit and see if I can figure out what's going on. I'm planning to work with return values anyway (e.g., for 'take') in the next day or so, so this may fit right into that. 13:01
13:01 pnu joined
timbunce pmichaud: wonderful, thanks. 13:01
13:01 thebird_ joined 13:02 thebird_ left
timbunce pmichaud: the idea of being able to wrap logging around all the methods in a role, trivially and optionally, it great. For DBDI it'll mean driver writers won't have to add their own method entry-exit logging, they'll get it for free, but only when the user asks for it. 13:03
13:05 oyse left 13:09 orafu left, orafu joined 13:11 timbunce left
masak I think github.com/rakudo/rakudo/blob/maste...ist.pm#L90 contains an erroneous assumption: that a comparator only yields -1, 0 and 1. 13:15
ditto #L111
also, those two methods could be written a lot shorter if they didn't insist on waiting on the FIRST phaser :) 13:16
colomon masak: errr... can a comparator return something that doesn't numerically evaluate to 1, 0, or 1? 13:19
*-1
masak maybe I'm thinking of some other language. 13:20
in some languages a comparator of strings returns the 'distance' between the differing characters (or lengths).
colomon in p6, its supposed to return one of the choices in the Ordering enum, but they numify to -1, 0, and 1. 13:22
does FIRST work now?
pmichaud in general, comparators should follow the "liberal/strict" rule.
colomon afk
pmichaud liberal in what they accept, strict in what they produce
13:22 masonkramer left
pmichaud so, one should generally make sure a comparator produces -1, 0, +1, but when evaluting the result of a comparator use < 0, == 0, and > 0 13:23
also note that in rakudo "0" as a constant is currently *much faster* than -1. :-P
*evaluating 13:24
masak patches it up 13:26
pmichaud note that $first-time isn't needed anymore either, I suspect. 13:27
well, I guess we can't rely on $cmp($_, -Inf) working for arbitrary $cmp 13:28
so, maybe we do need it.
it can certainly be done as:
my $max;
and
$max //= $_; 13:29
or something like that
masak aye.
I'll do that step after the -1 0 1 one.
13:29 Guest23195 joined
masak need to spectest both so I don't make a mess :) 13:29
pmichaud my $cmp = $by.signature.params.elems == 2 ?? $by !! { $by($^a) cmp $by($^b) }; 13:30
also looks weird to me.
I'd think it should just be $by.count or $by.arity
instead of .signature.params.elems
masak aye.
will remember that as well :)
pmichaud and $by = { $^a cmp $^b } is probably much better as $by = &infix:<cmp> 13:31
13:33 masonkramer joined
pmichaud heh 13:33
pmichaud tries to think of a way to use the series operator to compute max/min :-P 13:34
masak ...without any side effects :)
colomon -1 is slow because it's prefix:<->(1) ? 13:35
pmichaud colomon: yes.
anyway, < 0 is more robust. 13:36
colomon contrawise, I would have thought that $by = { $^a cmp $^b } would be slower than $by = &infix:<cmp> ?
pmichaud ?
I must be misunderstanding the comment.
The code I'm looking at currently has 13:37
multi method max($by = { $^a cmp $^b}) {
I'm proposing that it should be
multi method max($by = &infix:<cmp>) {
13:37 masonkramer left
pmichaud because &infix:<cmp> should be faster than the indirected block 13:37
colomon ah, so we're on the same page here. 13:38
pmichaud I'd probably eliminate the explicit "die" as well and just put a constraint on $by 13:40
13:47 ruoso joined 13:49 drbean left 13:51 colomon left 13:59 ejs left
masak Rakudo won't build here. 14:00
gist.github.com/553401 14:01
14:01 uniejo left
masak I'm on a clean HEAD, commit df38ac. 14:01
smash_ /usr/local/VERSION !? 14:02
masak I know!
not surprised it doesn't find it...
14:10 ash_ joined
pmichaud tries locally 14:14
14:15 cjk101010 left
pmichaud you're using an installed parrot, yes? 14:15
i.e., not the one from --gen-parrot
14:16 snearch joined
masak right. 14:16
pmichaud I'm guessing Parrot opsc bug, around compilers/opsc/src/Ops/File.pm 14:17
lines 297-300
I think the _config() function was removed from Parrot recently.
hmm, maybe not 14:18
at any rate, that "/usr/local" path definitely looks suspicious
what do you get from "parrot_config prefix", ooc? 14:19
14:19 CTAPOMAK left
masak oh btw. PARROT_REVISION says 48628. I'm running against r48693. 14:19
pmichaud: /usr/local 14:20
masak tries downgrading Parrot
14:20 patspam joined
pmichaud 65 commits since yesterday? wow. 14:20
14:22 jfried left 14:23 tadzik joined
pmichaud looks like the errors came in with r48691 and r48692 14:23
tadzik hello again
pmichaud trac.parrot.org/parrot/changeset/48691
trac.parrot.org/parrot/changeset/48692
shall I file a trac ticket for this? 14:24
masak please do. 14:25
bbkr tadzik: were you inspired by bigos while you compared P6 to food in "language wars" article? :P 14:31
pmichaud masak: trac.parrot.org/parrot/ticket/1757 14:36
masak pmichaud++ 14:37
pmichaud afk for a short while 14:38
tadzik bbkr: what kind of blogs? 14:42
I don't think so though 14:43
bbkr not blogs but bigos :)
tadzik oh 14:46
no, I wasn't thinking about bigos :)
though the language wars seem to resemble bigos a bit, sometimes 14:47
szbalint masak++ # blag, although I'd really be careful about still using use.perl.org. It's going away.
masak szbalint: I'm looking at migrating. I already have a blog.perl.org account. 14:48
szbalint: but I'd really like to build a static web page generator in Perl 6 and use that.
szbalint: I'm not happy with use.perl.org, it's a pain to use and not nice to look at. but so far inertia has been keeping me there. 14:50
Juerd Good summary. 14:53
bbkr tadzik: P6 is pretty much like bigos. 1 - it has many weird operators just as bigos has many weird ingridients. 2 - timtowtdi applies both do p6 code as to bigos recipies. 3 - p6 is getting better with every release just as bigos is getting better after every warming up. I think that bigos should be P6 logo :P 14:54
Juerd Not that I blog, anywhere, but I agree from a blog reader's perspective :)
masak: Build Template Toolkit for Perl 6, and use that for blogging? :P
szbalint yeah. I see your reasons, masak :)
Juerd How Hard Can It Be? 14:55
masak Juerd: I suffer a bit from not really knowing what TT is... :) I should find out some day.
Juerd: my current plan is to port jaspervdj.be/hakyll/ to Perl 6.
Juerd masak: It's a templating language, module, and toolkit for Perl 5
szbalint masak: turn inertia into centrifugal force and slingshot it the other way :)
masak Juerd: it'd be interesting to see how a monad carries over.
Juerd masak: TT's popular and I've seen it used in many places where I wouldn't have expected it 14:56
masak: Also, the ttree utility is nice.
(Comes bundled with the Template package)
masak Juerd: from what I've seen of TT, it's really not my bag. but I think I've seen too little of it to have a solid opinion.
Juerd Basically, TT does variables, loops, conditions and inclusion.
masak I'm generally not very happy about HTML-and-then-some solutions.
Juerd One reason for porting TT, or a subset of it, to P6 would be to help users transition 14:57
TimToady
.oO(Trac Ticket, Template Toolkit, TimToady...)
14:58
Juerd TimToady: Sorry if I highlighted you
TimToady I don't highlight on TT :) 14:59
Juerd Okay :)
masak someone else might find it -Ofun to port (a subset of) Template Toolkit.
TimToady for that reason :)
masak I don't think I would.
Juerd masak: -Omorefun would be to build a template toolkit toolkit, that supports multiple existing template languages by means of grammars :)
masak spectesting. one test failed in t/spec/S02-magicals/pid.t 15:00
Juerd: aye. I'd like that. November started down that road.
also I've never really grokked why we don't do something about the intermittent failures in t/spec/S05-mass/properties-derived.rakudo 15:01
Juerd An Hakyll HTML template with just $foo in it is very similar to a TT template with just [% foo %] in it. (TT can support $foo too, by the way)
masak I think I'm allergic to that syntax. :(
Juerd To [% ... %]?
masak aye.
sorry :( 15:02
Juerd: the template example 80% into masak.org/carl/yapc-eu-2009-web/talk.pdf is my idea of an near-ideal templating language. 15:03
Juerd Actually I agree
I hate [% ... %] 15:04
But I like TT enough to cope with it. They're configurable but I always try to stick to defaults, syntax-wise.
huf i dont think templates should be a second-class citizen
it should just be code
Juerd huf: Templates with limited programming capabilities exist for a very good reason: nobody wants to teach HTML people any real programming. 15:05
huf Juerd: that might work, altho i've never seen it work
daxim also: guaranteed seperation of concerns
huf also guaranteed ugly hacks and confused indentation due to multiple languages living in the same file ;) 15:06
Juerd masak: An XML extension? Nah, too purpose-specific
daxim I like to teach Text::Template first when teaching the concept of templating
huf free the templates! (like template::declare does)
masak Juerd: it does ifs and loops, and it's valid XML!
Juerd masak: It being valid XML is the problem
masak: I don't want to learn one templating language for POD, another for XML, yet another for postscript, and again some syntax for automated plain text emails 15:07
No templating language syntax should ever hijack any existing syntax from an output format.
No matter how cute and clean the resulting documents get. 15:08
masak Juerd: the program which that syntax is based off handles both XML and plain text.
Juerd Sorry, pet peeve :)
Also, I hate XML
Pretty slides, by the way! 15:09
daxim uuuurgh, kill it with fire 15:10
I was in that talk, I must have totally blanked out at this slide 15:11
Juerd An understandable reaction. It's probably your survival instinct that made you panic and forget it. 15:12
masak people feel strongly about XML.
I generally don't like it too much, but I just happen to like this templating solution.
I spent several years building web applications on top of Apache Cocoon, which I guess taught me the merits of handling data as XML internally. 15:13
spectest: one failure each in t/spec/S19-command-line/help.t, t/spec/S29-context/die.rakudo and t/spec/S29-context/exit.rakudo 15:15
PerlJam masak: Could you explain those merits? 15:19
masak I can try. 15:20
valid XML causes the content to be very predictable in a way that makes it easy to handle as opposed to, say, HTML tag soup. 15:21
15:21 macroron joined
masak the generator step can accept any non-XML, and the serializer step can produce any non-XML. 15:22
but having things as XML all the way internally is... nice.
15:22 colomon joined
masak could be any consistent format, not just XML. but XML is a nice fit. 15:22
.eoe 15:23
daxim pugs: <E I> x 2 . <O> 15:24
p6eval pugs: OUTPUT«*** ␤ Unexpected "."␤ expecting operator␤ at /tmp/35SDVyxaoc line 1, column 11␤»
daxim pugs: <E I> x 2 ~ <O>
p6eval pugs: ( no output )
daxim bleh
masak rakudo: say <E I> x 2 ~ <O>
p6eval rakudo df38ac: OUTPUT«E IE IO␤»
masak rakudo: say <E I>.join x 2 ~ <O> 15:25
daxim ah, forgot the say
p6eval rakudo df38ac: OUTPUT«EIEIO␤»
15:25 rindolf left
tadzik Web.pm sounds awesome 15:25
masak thank you. one day it might be. 15:26
the current champion of the idea, oddly, is mberends++
szbalint templating is such a fuzzy field. It feels like we're trying to work around HTML.
15:26 dual left
masak szbalint: we are. or at least trying to abstract it away. 15:27
tadzik Hitomi seemed cute
masak etymologically, it means something like "cute" :) 15:28
szbalint yeah, which is why it doesn't really work (yet). I think I dislike TT the least, but there isn't a solution I'm feeling comfortable with. That bothers me. I didn't spend enough time thinking about this yet to see why. 15:29
PerlJam templating languages shouldn't care too much about what they are embedded in.
szbalint: I think you summarized my position as well I too "dislike TT the least" 15:30
masak ah, seems "Hitomi" means "doubly beautiful" :) 15:32
_sri "...nobody wants to teach HTML people any real programming..." is so 5 years ago 15:33
TimToady rakudo: <E I> xx 2, <O>
masak I don't like TT personally, but I respect the fact that people seem to "dislike it the least" and generally get a lot of mileage out of it. I'd like to better understand why.
TimToady rakudo: say <E I> xx 2, <O>
p6eval rakudo df38ac: ( no output ) 15:34
rakudo df38ac: OUTPUT«EIEIO␤»
_sri every serious designer knows at last javascript
masak _sri: you seem to use the term "so 5 years ago" a lot. is the future unevenly distributed?
_sri *least
zby The thing that TT does right is that it stands out from the text 15:36
15:36 whiteknight left, patspam left
masak zby: at the expense of the reader's eyes. 15:36
15:37 patspam joined
_sri just stating the obvious, these days designers are programmers too 15:37
daxim I met a butterfly the other day.
I was just hacking out in my repo, about to merge a branch, when Camelia flew over and landed on my finger. 15:38
I asked her what she wanted.
And she said: "Bring back 60's Lisp macros."
I truly feel like I was visited by an angel that day.
masak _sri: you replied "so five years ago" to chromatic re his web vision in www.perl.com/pub/2010/08/rethinking...l-web.html -- just wondering if there's a single vision you're disappointed the rest of the world doesn't share.
(websockets or HTTP 1.1 or whatever)
zby if you are templating HTML - then [% %] is a good way to stand out and make it easier for the eyes to find out where is the templating and where the templated text 15:39
_sri masak: just trying to make people aware of the fact that the CGI age is over
zby then ALL CUPS also stand out in the usual text
masak _sri: so, I have a CGI script. what do I do?
_sri masak: chromatic basically discovered rails, 5 years too late
masak: kill it with fire? 15:40
masak _sri: I can't imagine that he did. but I'll reserve further judgment.
_sri: ok, so I have a *useful* CGI script.
but I"m willing to change it to something more future-proof.
_sri masak: whats your point?
masak I think what I'm asking for is a summary of your point. if not CGI, then what instead, and how, and why? 15:41
"CGI is old hat" was basically your reaction to the whole of Web.pm a year or so ago, too. 15:42
I never got anything more from you.
_sri something that actually supports modern web technologies such as long polling and websockets
15:42 daxim left
masak takes note of these buzzwords 15:42
_sri rack and wsgi are just as flawed
masak I see.
_sri node.js gets it right 15:43
masak and long polling and websockets are better/necessary because...?
_sri because it's not the 90s anymore? i'm not sure if you're trying to troll me 15:44
masak sorry it seems that way. I'm not.
_sri do you know what long polling and websockets are used for?
masak "because it's not the 90s anymore" only refers to the passage of time.
I'm currently reading up on them in order to follow along.
szbalint websockets are not used for anything atm because the browser support for them are in single digits.
_sri there are flash based workarounds for browsers that don't support them yet 15:45
dev.xantus.org/ # here's a websocket irc client for example 15:46
wargamez.mape.me/ # and a glimpse into the future of highly interactive web apps
bbkr is there any CSV module for P6 or can I write one? 15:47
_sri it's the ajax revolution all over again
15:47 tylercurtis joined
masak hugme: show csv 15:48
hugme masak: sorry, I don't know anything about 'csv'
masak bbkr: github.com/masak/csv
bbkr masak++ 15:49
masak _sri: I've heard you say this on Twitter and IRC many times over. I'm earnestly trying to understand what you mean by it.
_sri: I think I'd better take a closer look at node.js and then get back to you.
_sri masak: just read up on html5
masak ok.
lue ohai o/
masak lue: \o
_sri masak: www.youtube.com/watch?v=-BsB0HpS768 # amazing html5 demos in this video 15:50
masak will watch. thanks. 15:51
lue How can I accomplish a left bit rotation?
Juerd Rotation? That's shifting with wrapping around? 15:52
masak lue: +< :rotate
lue: but op adverbs aren't implemented in Rakudo yet.
lue rakudo: 'a' +< 1; 15:53
p6eval rakudo df38ac: ( no output )
Juerd a, as a number, is 0
+< shifts numbers
Shifting strings is done with ~<
I'd have expected 2 though.
Or wait, never mind that 15:54
0 isn't 1
lue rakudo: say 'a' ~< 1;
p6eval rakudo df38ac: OUTPUT«===SORRY!===␤Confused at line 22, near "say 'a' ~<"␤»
lue masak: does :rotate become the rhs ? 15:55
masak lue: no, I wrote it confusingly.
'a' <~ 1 :rotate 15:56
er, ~<
lue what happens w/o :rotate? [I'd check myself, but it doesn't work] 15:57
[particle] it shifts off the end
masak lue: what [particle] said. and zeroes shift in through the other end. 15:58
[particle] :rotate takes bits that fell off one end and sticks them on the other
TimToady for now, you best bet is to turn the number into a list and rotate that 15:59
lue
.oO(Curse you, NYI adverbs!)
TimToady you could implement them
whereupon we will deem them a code smell and think of something else
[particle] std: say 'a' <~ 1 :rotate
p6eval std 32107: OUTPUT«ok 00:01 117m␤»
TimToady pity the R metaoperator is taken... 16:00
C for cyclic maybe
16:01 smash_ is now known as smash
[particle] or we could add a metametaoperator to give R a different meaning 16:02
TimToady not really a higher-order met though
*meta
16:03 rokoteko joined
[particle] how do you give a metaoperator an adverb? 16:03
TimToady [particle]: <~ is not parsing teh way you think
[particle] op adverbs do have a scent, don't they
TimToady they're an escape valve, like BEGIN and eval 16:04
[particle] std: say 'a' ~< 1 :rotate
p6eval std 32107: OUTPUT«ok 00:03 117m␤»
TimToady once I get STD's op defs into the setting's lexical scope, std can check to see if there are any candidates with that named parameter 16:05
16:06 tadzik left
[Coke] masak: if your parrot-revision is X, but you're using x+N, that means you didn't rebuild. 16:06
masak TimToady: please don't introduce C just for making a small number of ops circular... :/
[Coke] (if you just svn up && make, you don't get the new revision #.)
masak [Coke]: one of us has a wrong assumption here.
and it probably isn't me. :)
[Coke]: first: why are you telling me this? 16:07
what did I do to deserve it?
so to speak.
patrickas masak++ blog post from this morning 16:08
masak [Coke]: I have a setop in which I build Rakudo and Parrot separately. for both, I always git/svn-update as much as possible, make realclean, conf, and build. 16:09
[Coke]: as such, I never just svn up && make.
the setup I have is a product of being burned many times. :) 16:10
16:10 molaf joined 16:14 justatheory joined, timbunce joined 16:16 molaf left, whiteknight joined
lue hmm, adverbs ought to be interesting to try... 16:17
masak and heredocs.
16:18 wtw left
masak phenny: tell tadzik nice post at ttjjss.wordpress.com/2010/08/08/per...gh-for-me/ -- typo 'Find::Find', even though such a module would be highly interesting. :) 16:19
phenny masak: I'll pass that on when tadzik is around.
16:20 justatheory left 16:23 risou joined
lue do adverbs need to be added to Grammar.pm and/or Actions.pm ? 16:25
16:25 plobsing joined
masak yes. 16:28
likely both, but start by making it parse. 16:29
16:30 sekimura joined
lue Grammar first then. 16:32
16:33 c9s left 16:34 dual joined
lue afk 16:37
16:37 tadzik joined 16:39 patspam left 16:40 baest_ joined 16:43 justatheory joined, zulon left 16:45 colomon left
moritz_ back 16:50
moritz_ married 16:51
TimToady \o/ 16:52
16:52 dakkar left
moritz_ \o/ indeed :-) 16:52
masak moritz_: wow! congratulations!
TimToady \o/\o/ rather :) 16:53
moritz_ lol
masak infix:<wed>
moritz_ thanks masak
TimToady masak: no fear, I'd already decided a meta ops was wrongish. 16:54
masak TimToady: good. just wanted to reinforce that decision :)
TimToady feels kinda like kicking someone when they're down. :P
masak one can never be too careful :P
masak suspiciously eyes Sop 16:55
tadzik \o/
phenny tadzik: 16:19Z <masak> tell tadzik nice post at ttjjss.wordpress.com/2010/08/08/per...gh-for-me/ -- typo 'Find::Find', even though such a module would be highly interesting. :)
tadzik moritz_: congratulations!
moritz_ thanks tadzik
tadzik moritz_: what are you doing herd nerd, there is a woman waiting for you! :P
masak: oh thanks :) 16:56
masak shouldn't that be "Hurd nerd"?
tadzik duh, should be here 16:57
dalek kudo: 18189a2 | moritz++ | src/core/Mu.pm:
implement Mu.so
tadzik herd gets a weird meaning
masak \o/
tadzik tadzik--
masak moritz_: so, you got married, and implemented Mu.so ? :P
tadzik autothreading works :) 16:58
smash moritz_: congratulations 16:59
16:59 revdiablo left
TimToady rosettacode.org/wiki/Reduced_row_ec...orm#Perl_6 needs some lovin's, doesn't work with R* 17:00
but looks like maybe a rakudo issue more than the code's problem
moritz_ masak: I actually implemented it yesterday, but forgot to push 17:01
smash: thanks
17:01 revdiablo joined
masak TimToady: I enjoy watching you enjoy yourself at Rosetta Code. :) 17:02
[Coke] masak: I was responding to you saying that you used rev X, but it was claiming X+N.
er, scratch that. reverse it.
masak [Coke]: that's not what I said.
tylercurtis moritz_: congratulations. 17:03
masak [Coke]: I'm fully aware that what PARROT_REVISION says isn't what I'm using. that's by design.
[Coke] masak: ok. then I will stop trying to help out. no worries.
masak thanks for trying, though. :)
[Coke] doubtful, but I'll pretend you mean it!
17:03 masak left
[Coke] hugme: hug masak, ironically. 17:03
hugme hugs masak,
[Coke] ... that's LTU. 17:04
TimToady: ok, I used up my snark. You're good to go.
TimToady hugme: hug [Coke], metaphorically. 17:05
hugme hugs [Coke], metaphorically.
[Coke] phenny: ask moritz if he saw the last comment on trac.parrot.org/parrot/ticket/1746 17:08
phenny [Coke]: I'll pass that on when moritz is around. I'll have to use a pastebin, though, so your message may get lost.
[Coke] whoops.
phenny: tell moritz that he can check, but i mis-m'd that. 17:09
phenny [Coke]: I'll pass that on when moritz is around. I'll have to use a pastebin, though, so your message may get lost.
patrickas TimToady: What should this produce ? (10,11,12,3,4,5,6,7...4) Nil or (10,11,12,3,4)
[Coke] phenny: ask masak if he saw the last comment on trac.parrot.org/parrot/ticket/1746
phenny [Coke]: I'll pass that on when masak is around.
[Coke] pmichaud: I'm not sure who the rakudo dev is that can respond to TT #1746 at this point. 17:10
17:10 thebird left
[Coke] I'd normally say jnthn. 17:10
17:10 hsmith joined
hsmith can anybody please tell me why I am banned in #perl 17:10
[particle] hsmith: no 17:11
hsmith: we have no knowledge of what goes on in #perl
[Coke] that's basically a completely different channel, sorry.
hsmith oki doki... I really apreciate it. thanks 17:12
17:13 sekimura left 17:14 sekimura joined 17:16 masak joined
masak [Coke]: yes. not sure I can fix it unassisted, though. 17:16
phenny masak: 17:09Z <[Coke]> ask masak if he saw the last comment on trac.parrot.org/parrot/ticket/1746
17:16 whiteknight left 17:17 pm_ joined
pm_ hi, has anyone built parrot successfully under mac os 10.6.4? 17:19
masak yes. regularly. 17:20
pm_ oh ;-)
well inter::progs in Configure gives the following warning:
Determine what C compiler and linker to use...dyld: lazy symbol binding failed: Symbol not found: _main
did you have any of that?
[particle] pm_: is it possible you have a previously installed parrot there? 17:22
no, that shouldn't do it...
masak pm_: do you have XCode installed? 17:23
pm_ mhm, I tried to build the 201007 version but also unsuccessfully
yes Xcode is on the system
[particle] right, taht's probably it masak
it's not finding the linker
masak it's usually XCode somehow :)
pm_ ah so xcode does something strange to the linker? 17:24
[particle] maybe when steve comes out with iCode, it'll Just Work.
...as long as you only want to build things one way.
pm_ maybe theres an already an app for that..
ah sorry.. I had two perl5 installations on the system 17:25
in /opt/local and in /usr/bin
building with /usr/bin/perl seems to work.. 17:26
sorry I should have checked this earlier..
masak no problem. 17:27
17:27 ash_ left
[particle] happy to help 17:27
masak it's good to know where people usually run into trouble.
[particle] yeah... with perl 5.
17:27 ash_ joined
pm_ well so long and thanks for the fish.. ;-) 17:27
17:28 pm_ left
masak to be fair, Perl 5 has some good sides as well. 17:29
[particle] yeah, it's finished ;) 17:30
tadzik www.reddit.com/r/perl/comments/d5e1..._6/c0xuruz -- take a look folks
masak tadzik: there's already svn.openfoundry.org/pugs/docs/Perl6...rences.pod 17:31
hm, I hope that one isn't out-of-date... 17:32
tylercurtis \o/ S32-array/kv.t isn't randomly dieing after the 9th test because of my Proc::Status patch!
17:33 fod joined, wamba left
masak the part about Kwid has to be out-of-date. :/ 17:33
17:34 zulon joined
masak tadzik: nice discussion. in www.reddit.com/r/perl/comments/d5e1..._6/c0xr4ow , seems like a verb is missing near "I can that". 17:37
pmichaud ...that's a reddit discussion? noway. Too civil. 17:38
masak the trolls must have gotten bored. 17:39
pmichaud: re the last comment on trac.parrot.org/parrot/ticket/1746 -- is there any way I could help?
pmichaud I disagree with the analysis. 17:40
masak oh.
pmichaud He's correct that the class is changed, but the data structure remains the same.
I'm not sure what is meant by "allocated from the memory pool of the old class" though. 17:41
17:41 smash left
pmichaud Each class gets its own memory pool? 17:41
(put another way ... if this is in fact an issue, we should be seeing the problem far more often than here, since *every* Rakudo object has this reblessing done on it. 17:42
masak so the segfaults originates from somewhere else? 17:43
pmichaud I can't say that for certain.
I just have difficulty believing the conclusion. 17:44
17:44 patspam joined
pmichaud anyway, if that is indeed the problem, then jnthn++ or someone who deeply understands Parrot object internals is likely the only one(s) who can solve it. 17:44
17:45 macroron left
pmichaud I still have disagreements with the original code example, as well. 17:45
should we move the discussion to #parrot? 17:46
tylercurtis nopaste.snit.ch/23176 # patch to make &run's result have the correct boolean value. 17:47
masak pmichaud: we could move the discussion to #parrot, if you want. thought the code is in Perl 6 :) 17:48
pmichaud actually, looking at it further, I think the analysis might be correct. 17:50
well, correct-ish.
Tene rakudo: my $n = 0 but True; say "lol" if $n; 17:51
p6eval rakudo df38ac: ( no output )
pmichaud the rebless_subclass opcode gets called in exactly one place.
Tene rakudo: my $n = 0 but True; say "lol" if ?$n;
p6eval rakudo df38ac: OUTPUT«lol␤»
Tene Is that a bug with if?
pmichaud no, it's a bug with get_boolean vtable, likely. 17:52
Tene tylercurtis: I'd prefer that you just return an int modified as above, instead of making a new class just for this.
tylercurtis: but, as above, there's an issue with Int get_boolean vtables.
tadzik masak: thanks, my typo-hunter :) 17:53
pmichaud rakudo: my $n = 0.Int but True; say 'lol' if $n;
p6eval rakudo df38ac: ( no output )
Tene rakudo: say Int.WHAT 17:54
erm
p6eval rakudo df38ac: OUTPUT«Int()␤»
Tene rakudo: say 0.WHAT
pmichaud I agree -- I don't want the specialized class for this.
p6eval rakudo df38ac: OUTPUT«Int()␤»
tadzik where is 'but' documented?
moritz_ probably S12 or S13 17:55
pmichaud well, we might be able to fix the 'but True' part by a change to 'if'
but it will likely require a change to PCT 17:56
and not a pretty one, at that.
tylercurtis Tene, pmichaud: actually, ignore that patch. Apparently, the exit status really needs to be only for .Int, since the child process's PID is supposed to be the Numeric value. 17:57
pmichaud the .Int and .Numeric are different?
oh, that... is awful.
tylercurtis pmichaud: according to S29.
Yeah.
pmichaud I think S29 needs changing there, then.
That feels like a case of trying to be too clever with overloading existing interfaces. 17:58
tylercurtis I agree. Maybe it should have neither .Int or .Numeric and just require to explicitly do either .exit or .pid.
17:58 zby left
pmichaud that makes a heck of a lot of sense. 17:59
tadzik duh, grepping Synopses for 'but' is painful
17:59 patspam1 joined
pmichaud tadzik: try '<but>' 17:59
tadzik easier, thanks 18:00
18:01 patspam left
tylercurtis I'll work on changing S29 and writing a new patch later. 18:01
tylercurtis goes for a walk.
18:08 mberends joined
masak tadzik: I'm thinking I might do a bit more pls/poc module triaging tonight. 18:09
tadzik masak: dependencies are not resolved 18:11
masak indeed. let's tackle that now.
tadzik a'right 18:12
masak what's a good module with dependencies?
tadzik Math::Model
masak right.
masak tries it
tadzik it has dependencies which have dependencies
masak excellent.
tadzik it doesn't work
but fails for a strange reason
masak there are tests for that, so this should all work once dependencies are recognized. :)
tadzik haha, pls is another module which implements its own mkdir-p 18:13
it's different each time 18:14
masak since yesterday, yes :)
I made it from scratch.
how many other known implementations are there?
might make a fun blog post.
tadzik neutro has one, File::Tools has another
masak :)
pmichaud masak: I think we now know the source of the problem behind TT #1746
(from #parrot)
masak pmichaud: yes, I'm following along on #parrot 18:15
tadzik not sure if I didn't change neutro's one after stealinig File::Tools solution from moritz++ Module::Starter
pmichaud something is attempting to compose a role into a Parrot Hash
masak pmichaud: ouch.
pmichaud so, more to the point, something is returning a Parrot Hash instead of a Rakudo Hash
Rakudo Hashes are somewhat broken already -- I *really* want to get rid of that silly role Hash
masak tadzik: poc dies with a stacktrace when a module isn't found. that's non-good. 18:16
pmichaud so maybe the place to start is by fixing Hash
tadzik masak: I'd like to introduce "my" module names to it
so you will be able to install Acme::Meow rather than perl6-Acme-Meow
as neutro does it
masak tadzik: hm. 18:17
tadzik: so far, I've been preferring to keep an identity mapping between the name you write to install the module, and the repo.
it's been working out quite well.
changing the mapping would introduce more moving parts, and would in some sense mean taking sides. 18:18
tadzik it's ugly and I didn't like it from the very beginning
no parts have to be moved
look:
github.com/tadzik/neutro/blob/master/neutro#L55 18:19
it can be done another way around
masak so you have a mapping from the real names to names that you prefer. 18:20
tadzik yep
masak and that mapping... who maintains it? the package installer developer(s)?
tadzik actually, another way around
18:20 molaf joined
tadzik no, I do. As pls has its poc-projects.list, neutro has modules.list 18:20
masak that work will grow with each new project added to the ecosystem.
I'm afraid I don't see the benefit. 18:21
tadzik I believe that naming by repo names is a temporary solutioni anyway
masak me too.
but it's a simple one.
yours is one level of indirection more complicated.
and the added benefit is slightly nicer-looking names.
tadzik the benefit is that when you want to install Math::Model, you install Math::Model instead of wondering "now what is the name of Math::Model in that masterpiece"
masak they're all listed at modules.perl6.org 18:22
along with descriptions and other metadata.
PerlJam It's too bad modules.perl6.org isn't also a module registry of sorts
tadzik and you have to look it up every time yourself, I thought programming is about not doing everything yourself
PerlJam (I guess that's cpan6 territory)
tadzik is there anything being done with cpan6? 18:23
masak tadzik: we have different goals. that's ok. this is quite a pleasant detail to disagree over.
tadzik . o O ( maybe that will be the second thing we should do after, or before emmentaller masak )
masak cpan6 is the cat that all the mice wants a bell to be put on.
tadzik nice analogy
18:24 zulon left
masak I'm not touching it, at least not without backing by the right people from the Perl 5 side, and a decent plan. 18:24
tadzik but I think that if we maintain the modules list ourselves, we can as well maintain it with proper module names
PerlJam masak++ you are a wise man. :)
masak call it survival instinct. 18:25
tadzik: no, that does not follow.
tadzik: we differ in how much minimalism we persue in building our installers.
tadzik: if I can skip a layer of indirection, I will. every time.
you prefer the added convenience to the user. that's alright. 18:26
pmichaud I think from the outset we need to not assume any unique mappings of module names to repo name.
tadzik isn't a separate Pls and POC the layer of indirection?
pmichaud (not that there shouldn't be mappings... but they can't be unique)
masak tadzik: yes, but that's one that really really hurt not having. 18:27
pmichaud ideally, I'd expect to be able to specify a repo name if I know it or want a specific version, otherwise a module name does a "best match"
18:27 envi^home left
masak tadzik: you might not see it now, but that separation of workflow and mechanism is the one single idea which will make pls overtake proto in stability, reliability and usability. 18:28
PerlJam pmichaud: Quick, which is best? perlpilot/benchmark-perl6 masak/benchmark-p6 moritz/benchmark tadzik/Benchmark-Perl6
:-)
tadzik PerlJam: they are equally good, unless you want "Benchmark"
masak: probably 18:29
pmichaud PerlJam: I presume that "best match" is based on more than just name.
PerlJam I wanted the perl 6 benchmark module.
masak I'll take this as silent admiration: twitter.com/dbrock/status/22287574781 :)
tadzik I believe the goal isn't to have 4 benchmark modules in the module db
(although we have 2 Term::ANSIColors) 18:30
pmichaud PerlJam: what is this "*the* perl 6 bench mark module"?
PerlJam pmichaud: As an end user, I may not know.
pmichaud PerlJam: exactly
so if you say "benchmark" and the matching algorithm can't figure out what you want with any degree of certainty, it should come back and say "I know about .... did you want one of these?" 18:31
masak PerlJam, tadzik: I think it's important to realize that neither proto, neutro, pls or any other installer we have now, or any system they employ, will survive the next five years. this is all about providing something for users now. 18:32
it doesn't have to be perfect. just sane.
PerlJam masak: good point.
masak they might also help us by pointing the way to things we want but didn't know we wanted.
tadzik that's why I'll go for names mappings. It suits "for users" as well as 'not perfect' :) 18:33
masak tadzik: and I totally approve. as long as it's in your project, not mine.
:)
tadzik and it is :)
masak I wouldn't even be too grumpy if it turned out to be the "better" equilibrium, all things considered.
after all, people have widely different naming standards. 18:34
and this is a way to equalize that.
but don't believe I won't smirk every time I think about all the work you have maintaining that mapping that I don't have. :P
tadzik: installing Math-Model fails with this build log file: ===SORRY!===\nUnable to open filehandle from path 'lib/Math/Model.pm6' 18:35
tadzik yep
masak that's... odd. 18:36
tadzik ...yep :)
masak in·vest·ig·ate·s
PerlJam thinks that there's something to be said for having a cpan-a-like that just holds the meta-info and not necessarily the tarballs 18:37
masak PerlJam: well, that description matches proto, neutro and pls.
tadzik masak: I was able to install Math::Model by going back a commit 18:38
masak good to know. 18:39
then it was something I did :)
pmichaud I am not having a very good/productive day. :-(
masak so... why is it trying to open a .pm6 file, when there's only a .pm file there?
PerlJam masak: yeah, but they have the added burden of proto/neutro/pls :)
tadzik but wait, I have all the modules installed anyway :)
so I don't know if it installed the dependencies
masak PerlJam: I've been toying with the idea of moving the projects list out of the proto/pls repo. 18:40
PerlJam: and into the Mu repo.
pmichaud suggests into perl6/something
or pugs/something
masak pmichaud: I'd prefer Pugs. then everyone can edit it.
PerlJam masak: +!
er, +1
pmichaud everyone can edit in the perl6 repo, also.
masak oh?
pmichaud I mean, we'd have to hand out commitbits, but that's easily done via hugme 18:41
masak that's true.
tadzik masak: funny, removing my ~/.perl6/lib made poc not install anything, but still saying "Math-Model installed."
masak tadzik: o.O
PerlJam what about going more "wiki" and forego the commitbits?
tadzik masak: pb.rbfh.de/2HYQhdcEbfwva
pmichaud PerlJam: that's a possibility also, although I suspect it might not scale well. 18:42
masak PerlJam: such a public wiki would attract spam.
pmichaud ultimately I suspect we'll want people to provide repo locations and something harvests the metadata
masak PerlJam: and then you'd have to lock it down.
pmichaud: perl6/ecosystem, then. 18:43
pmichaud: if you create it, I'll populate it.
PerlJam masak: That's a common pattern but I don't take it as a given.
anyway ... (all you guys)++ :-) 18:44
pmichaud masak: create the repo?
18:44 erez left
pmichaud sure thing 18:44
masak PerlJam: it's happened to every wiki I know. I don't understand why it happens less with CVS solutions, but it does.
tadzik did you mean: VCS? :)
masak oops. aye. :)
TLA 18:45
masak .oO( saying CVS rather than VCS was an LTA TLA )
tadzik LTA? TLA?
18:45 M_o_C joined
masak less than awesome. three letter acronym. 18:45
PerlJam tadzik: less that awesome 18:46
yeah, what he said :)
tadzik :)
masak the former is a local term.
PerlJam apparently I type slower than normal while paying attention to a presentation
masak it's over one year old now \o/
pmichaud masak: github.com/perl6/ecosystem 18:47
masak pmichaud++
pmichaud masak: you already have commit rights
tadzik so what will be inside? :)
masak tadzik: a list of modules, in JSON format. 18:48
tadzik ah, I see the description
pmichaud I'll grant commitbits to whoever else wants them (at least until we get hugme setup)
tadzik I don't mind having those
masak: about sub determine-make-program, couldn't we just use: run "which nmake" blah blah? 18:49
[Coke] Klingon is not part of the Unicode Standard. (SAD FACE) 18:50
masak tadzik: jnthn wrote that. ask him.
18:50 colomon joined
pmichaud I'm pretty sure 'which' is specific to unix. 18:50
masak ok, projects.list is up at github.com/perl6/ecosystem
I'll add a little something to the README as well. 18:51
PerlJam I bet "which" works on plan9 and qnx and other non-unixes :)
pmichaud okay, I'll rephrase.
masak we'll basically want to delete poc-projects.list now from the pls branch :)
pmichaud I'm pretty sure 'which' is not available under Windows (except maybe cygwin)
[Coke] pmichaud: easy enough to whip up a "which.pl" that does mostly the right thing.
masak (and replace it by a HTTP GET)
colomon cygwin has which, yes.
tadzik I'm pretty sure "nmake /? > nmake.tmp 2>&1" is specific to UNIX too 18:52
[Coke] nopaste.snit.ch/23178
*bot, nopaste? 18:53
tadzik . o O (maybe it would be nice to keep the tags in the ecosystem, not only git repo urls. Then it would be more-less guaranteed that there lies something that works) 18:57
[Coke] pmichaud: that nopaste contains a whichalike for win32.
pmichaud [Coke]: okay. :-)
tadzik: ...which tags are you referring to? 18:58
Tene tadzik: I'm pretty sure that /? is a windows-ism.
tadzik pmichaud: git repo tags, as in `git tag 1.0`
[Coke] as is nmake.
/? is windows for -?
tadzik hmm, maybe. But it's in poc sources, and works on unix. Maybe it's portable then 18:59
[Coke] (for the generic , not necessarily for help.)
2>&1 works in command prompt.
pmichaud it might be worth noting that Rakudo's $*VM<config> also has a lot of make/perl configuration information auto-detected by Parrot.
masak wrote a README: github.com/perl6/ecosystem
[Coke] pmichaud: which parrot knows is crap and will eventually not propagate.
... unless you mean the useful bits! 19:00
tadzik masak: 2057 tadzik | . o O (maybe it would be nice to keep the tags in the ecosystem, not only git repo urls. Then it would be more-less guaranteed that there lies something that works)
[Coke] (there used to be a ton of /perl5/ config in there, too.)
tadzik what do you think?
masak tadzik: I think wait and see.
tadzik wait for what? :) 19:01
pmichaud I think there should be a mechanism for providing tags, yes. But I also think it should be "as needed", not "let's engineer every possibilty up front"
masak if it turns out that your convenience beats my minimalism, then you can move them in there.
tadzik heh
masak until then, let's keep it minimal :)
tadzik making them optional would be nice maybe
pmichaud fwiw, minimalism needs to also include extensible.
they certainly shouldn't be required.
(not at this stage) 19:02
tadzik well, for now there is a loads of modules from which like half works
masak I'm proposing that we not introduce an extra layer of indirection at all in projects.list
tadzik or: is known to work
masak neutro can do the mapping if it wants. that's fine.
pmichaud masak: you thikn that projects.list should simply be a list of repos? 19:03
*think
masak yes.
tadzik neutro is just waiting for pls to be completed, so it can hide in a shade with medals, gallons and stuff
masak :)
tadzik then it could be changed to just lines with urls 19:04
pmichaud what tadzik++ said
tadzik more simplicity, no json, let's dance
pmichaud why structure it at all then... why not just have urls?
19:04 jaldhar left
PerlJam I kind of like the meta-info you get from CPAN: repo-type, url, version, license, etc. 19:04
19:04 patrickas left
pmichaud PerlJam: I think that ought to be maintained in the repos, though, not in the central list. 19:04
tadzik I'd personally make it more complex, even if it would require some work from the developers side, it would show which modules are actually alive 19:05
masak pmichaud: that structure comes from a time when not everyone had github repos.
pmichaud or, more to the point, something should collect that information, as opposed to people adding / maintaining it manually
masak pmichaud: from that structure, you could basically dispatch on the type of repo to decide how to install the module.
pmichaud masak: one can do that with url, too.
masak troo.
it's basically just for hysterical raisins.
pmichaud tadzik: I'd keep it simple, and have something that collects the metadata and builds the structure 19:06
tadzik so maybe it's a high time to change that :)
masak and an URL string is less digested than a set of hash entries.
PerlJam tadzik: what does "alive" mean?
tadzik pmichaud: and separate the simple list from the actual data?
pmichaud tadzik: maintain the "actual data" in the repos, not in the central list
tadzik PerlJam: let's say: works
masak github.com/moritz/modules.perl6.org...ist.pl#L19 needs changing now. any volunteers? :) 19:07
ash_ so... i know have a working backend for try.rakudo.org and updates to the front end to use it, but its not secure currently, anyone have any suggestions for making the repl more secure?
PerlJam tadzik: the module works? or the URL works?
tadzik PerlJam: the module. I'm talking about the modules in general
19:07 zorgnax_ joined
ash_ and now it does use the perl6 repl built in 19:07
tadzik yay! 19:08
ash_++
PerlJam tadzik: The module may work for one person but not for another. Is it "alive"?
.oO(Schrodinger's module?)
moritz_ rakudo: use FORBID_PIR; pir::printerr__vP('Foo')
p6eval rakudo 18189a: OUTPUT«===SORRY!===␤pir::op forbidden in safe mode␤␤»
zorgnax_ This seems a bit unwieldy. Is there a better way to have a character class for anything but a ']'? <-[\]]> 19:09
masak ok, modules.perl6.org is now set to use perl6/ecosystem's project.list instead of the one in the pls branch.
zorgnax_ actually its not that pad
ash_ morits: > use FORBID_PIR;
_block71
> pir::printerr__vP("foo");
fooP
:-(
moritz_ ash_: hm, I might be able to fix that
masak zorgnax_: that's the way I'd write it. 19:10
PerlJam zorgnax_: put it in a grammar and give it an appropriate name :)
ash_ moritz_: i might need to update rakudo, i think its been about a week since i did that, so that might help? maybe not though
[Coke] PPW folks want to know if we want a rakudo hackathon there.
masak token anything_but_the_backslash
tadzik PerlJam: I'd define "works" as in "Passes its tests", at least on one configuration. My point is, there's plenty of modules in proto db, but tests show that 21-28 actually build/work
pmichaud I got an email from rblackwell but haven't had a chance to respond yet
masak er, _the_closing_bracket
zorgnax_ I was thinking it may be possible to have syntax like <-']'>
pmichaud I don't know yet if I can make it.
zorgnax_ nm about that last bit 19:11
[Coke] pmichaud: yes, that's the same email. ;)
PerlJam tadzik: same question basically. It passes its tests on system A, but doesn't on system B
moritz_ ash_: I haven't fixed it yet; I might be able to
[Coke] TimToady is attending, but not sure if he's going to want hacking time.
zorgnax_ does metasyntax quoting have any meaning?
pmichaud tadzik: I think getting into questions of "works / doesn't work" is something beyond a basic module installer at this point.
[Coke] phenny: ask TimToady if he'd like a perl6 hackathon to happen at PPW.
phenny [Coke]: I'll pass that on when TimToady is around.
tadzik pmichaud: I think it's beyond the module db, not the module installer, I mean there are many modules which haven't received any love recently and they don't work with Rakudo now 19:12
PerlJam tadzik: that's the function of the smoker.
pmichaud tadzik: that's a function of a testing service
tadzik alright, you have me :)
pmichaud if you want to write a testing service, great. But let's not confuse that with module management just yet. 19:13
masak zorgnax_: I don't know. S05 will contain the answer, though.
pmichaud zorgnax_: there's / ']' <!> | . /
er, no
zorgnax_: there's / ']' :: <!> | . /
which doesn't work in rakudo yet
PerlJam Sounds like we're regrowing all of the CPAN infrastructure
tadzik pmichaud: I rather thought about, well, filtering the module db a bit. But now that I think a bit, I don't remember why I started thinking about that 19:14
pmichaud PerlJam: ugh, I hate statements like that.
sometimes wheels need reinventing (more)
sometimes it's worth exploring alternate designs just to see what might've been overlooked the first time around 19:15
I'm not saying "don't use CPAN", but I do think there's a tendency to say "don't reinvent CPAN" before we really know what we want
(not that you said that... but many people will infer it) 19:16
tadzik oh by the way, what about require pmichaud?
PerlJam I agree. Though, at this point, I don't see that's we've made any significant deviations in the "design"
(even the design we're just talked about and not implemented) 19:17
s/we're/we've/
pmichaud PerlJam: that may be.
...but can I create modules without having to upload them?
or do we want our unit of currency to continue to be a tarball?
ash_ moritz_: i used to use: gist.github.com/553994 if that could be contained in a built in module, or use SAFE_MODE or something, that would be nice, if not, i understand, but i am going to have to figure out the right way of doing that from the repl
19:18 tylercurtis left
ash_ could i do that, then start the repl after i set it to be 'safe' enough? 19:18
Tene btw, japhb has also spent a lot of time thinking about this kind of stuff for plumage; you might want to interact with him
PerlJam pmichaud: tarball, zip file, whatever. The whole point of having the module list so that someone can a) discover a useful module and b) use it :-)
pmichaud: but, I do tend to want to decouple the meta-info from the module storage. 19:19
pmichaud PerlJam: that's been my whole point
is that part of CPAN's current design?
(decoupling)
PerlJam okay, then we're in violent agreement :)
pmichaud except for the part of "no significant deviations"
PerlJam no, the decoupling is not part of CPAN's design. Ergo, I retract what I said earlier.
pmichaud okay. :-) 19:20
ash_ moritz_: actually, for the other parts (the open, run, slurp, etc. ) functions, i can make a script and then call Perl6::Compiler.interactive(); and it blocks all of the open/run/etc. functions, but it still lets pir run 19:22
PerlJam pmichaud: but if someone pipes up with "we need a rating system for the modules" I am going to cringe a little :) 19:23
moritz_ ash_: I think it's just a question of where to define the $*FORBID_PIR contextual
it's currently defined in comp_unit
ash_ PerlJam: we need a rating system for modules, :P
moritz_ which doesn't seem global enough for that purpose
PerlJam gives ash_ a hug that's perhaps just a little too tight for comfort 19:24
;>
Wait ... did I just weaponize hugs?
moritz_ -> sleep
ash_ not serious about the modules
PerlJam g'night moritz_ 19:25
tadzik o/
ash_ moritz_: alright, thanks for the tip, i'll see if i can find a way to make it possible to have use FORBID_PIR; work the way i need
pmichaud growls at T-Mobile.
19:27 zorgnax_ left
TimToady I think I've found a binding bug. wall.org/~larry/hamming.p6 19:29
phenny TimToady: 19:11Z <[Coke]> ask TimToady if he'd like a perl6 hackathon to happen at PPW.
TimToady [Coke]: if there's one during, that's fine, but Glo and I will be flying straight from there to Japan 19:30
masak ooh, the Hammind sequence! 19:31
TimToady I would guess that the *@xtail is not successful in binding to the conjectural part of the @hamming array 19:32
PerlJam TimToady: I didn't think that particular signature syntax worked
19:32 timbunce left
[Coke] GAH. jnthn++ ... clicking on that link on my windows box fired off rakudo. 19:32
masak TimToady: any reason why it shouldn't bind?
TimToady rakudo: sub foo (@x [$xhead, *@xtail]) { say ~@xtail }; foo([1,2,3]) 19:33
p6eval rakudo 18189a: OUTPUT«2 3␤»
masak \o/
Tene perl6: my @x = 1..5; sub foo(@a [$a, *@atail]) { say "head: $a\ntail: {@atail.perl}"; }; foo(@x);
p6eval rakudo 18189a: OUTPUT«head: 1␤tail: [2, 3, 4, 5]␤»
..pugs: OUTPUT«*** ␤ Unexpected "[$"␤ expecting "?", "!", trait, "=", default value, "-->" or ")"␤ at /tmp/6hVbwrTvGV line 1, column 26␤»
TimToady rakudo: sub foo (@x [$xhead, *@xtail]) { say ~@xtail }; foo([1, (2...3)])
p6eval rakudo 18189a: OUTPUT«2 3␤» 19:34
TimToady rakudo: sub foo (@x [$xhead, *@xtail]) { say ~@xtail[^3] }; foo([1, 'x' xx *]) 19:35
p6eval rakudo 18189a: OUTPUT«(timeout)»
TimToady anyway, hamming is sort of an acid test for laziness, the way man-or-boy is for scoping 19:36
and currently we flunk...
huf what does the sub foo(@x [$x, *@y) syntax do? 19:37
err, with the ]
Tene huf: destructure @x
huf ah
wait, that needs the @x in front? 19:38
masak no, but that adds another name and a Positional constraint.
19:38 stepnem left
huf ah 19:38
neat 19:39
19:39 timbunce joined
masak tadzik: just pushed a fix to the .pm6 bug. now we're back on dependencies. :) 19:41
masak looks forward to poc doing this right
19:42 hsmith left, stepnem joined
pmichaud file a bug report for hamming, please. I know enough of the binding code now that I think I might be able to fix it up. 19:42
I'd like to see that one work. 19:43
masak submits rakudobug for hamming
ash_ pmichaud: do you have any suggestions for getting use FORBID_PIR; to work in rakudo's repl?
pmichaud ever have one of those days where you're just certain that the planets have entered a new alignment that is causing everything to fail? That's my day. 19:44
tadzik masak: not me :|
pmichaud ash_: I'm thinking FORBID_PIR needs to become a lexical var as well as a compile-time constant if it's going to be preserved.
tadzik I just found out my Linear algebra exam is on 3th, not 9th
I'm banning myself from #perl6 since tomorrow
pmichaud ash_: but the other way we could do it is to provide an option to the compiler that does the equivalent of FORBID_PIR without having to have the use statement. 19:45
ash_ tadzik: at least you didn't found out it was yesterday
pmichaud: like a flag for when you call the exe?
pmichaud yes, or something passed to the repl 19:46
ash_ I am using Perl6::Compiler.interactive() right now
pmichaud right
masak tadzik: and you're sure you got my last commit?
pmichaud it can be an option passed to that.
ashleydev pmichaud: it'd be nice to load modules with a url like .js
if they're not local
pmichaud ashleydev: that's a language issue, not an implementation one :-)
(well, it becomes an implementation one at some point... but right now it needs a spec :-)
ashleydev but the conversation made me think of that 19:47
pmichaud ashleydev: sure. See S11 for what exists so far.
tadzik ash_: well, I have one week instead of two
masak: just pulling
ash_ use Remote-Module; use 'google.com/api/perl-libs'; # might be neat but also could be scary 19:48
ashleydev ash_: fun! 19:49
;)
ash_ i guess you could do something like use Remote-Module 'google.com/api/perl-libs'; without to much headache, and just cache files on your local computer
ashleydev ash_: I would expect there would need to be come caching by default
ash_ that doesn't seem to crazy to implement with the current spec, i can't think of any reason it wouldn't work 19:50
pmichaud some form of cache is likely anyway, even for local modules. 19:51
ash_ lol, here would be a fun one, "use lib cpan.perl.com'
err
use lib cpan.perl.com'
grrr, sorry having a retard moment with my return key
use lib 'cpan.perl.com'; use Foo; and have it find foo on cpan 19:52
19:58 muixirt joined
masak has poc pull its projects.list from perl6/ecosystem 20:00
20:01 Italian_Plumber left
masak look at this change: github.com/masak/proto/commit/61a58...c6ac730c0a 20:01
20:01 rokoteko left
masak I can't decide if it's Perl 6 that's very nice to me, or the pls design, or both. :) 20:01
(suggestions for how to do this without 'wget' are welcome, though) 20:02
tadzik LWP::Simple maybe?
[particle] use curl?
scnr
masak [particle]: I've never figgered out when to use wget and when to use curl :)
Tene I do have an http client... somewhere...
masak tadzik: that might be the way, yes. wonder if I can do it without a module, though.
Tene probably not anywhere online
masak: HTTP client is very simple. You should be able to do something that works well enough for most cases in like a couple dozen lines at most. 20:03
masak sounds good. 20:04
Tene write: GET /foo/bar HTTP/1.1\nHost: foo.bar.com\n\n; read off the headers, and then loop read/write
masak nod 20:05
tadzik: if you'll have a look at t/subcommands/build.t, you'll see how dependencies work.
Tene masak: I'd be glad to help you with that if you need it. 20:06
masak tadzik: there are entries such as :deps<A B> in that hash.
Tene: cool. I'd gladly accept a patch.
20:08 snearch left
ash_ do sockets work in perl6? 20:11
20:12 Italian_Plumber joined
masak yes. 20:12
ash_ only tcp/udp? or can you do unix sockets too?
20:13 Kodi joined
Kodi gist.github.com/493037 - Latest version of Instants and Durations patch. 20:13
masak tadzik: that hash is put into something called the ProjectsState. in the t/ tests it's already there from the beginning. in the Real World, we have to populate ProjectsState after fetching a project. 20:14
tadzik: thinking about it, I suspect that's a job for the logic in App::Pls. 20:15
20:16 Italian_Plumber left
lue hai o/ 20:18
masak o/ hai
20:19 \xF0 left, M_o_C left, \xF0 joined 20:20 justatheory left, Italian_Plumber joined
lue congratulations, moritz_ 20:21
20:22 IcyBee joined, molaf left 20:26 ejs joined 20:37 risou left
lue rakudo: my $a = 3 :carefully 20:41
p6eval rakudo 18189a: OUTPUT«===SORRY!===␤Confused at line 22, near "my $a = 3 "␤»
ash_ std: my $a = 3 :carefully 20:42
masak :)
p6eval std 32107: OUTPUT«ok 00:01 118m␤»
lue out of curiousity, how would a P6 user define their own adverbs? .oO(sub adverb:<sickly> ?)
20:43 Mowah left, Italian_Plumber left
lue
.oO(Leave it to a linguist to name a language feature an adverb)
20:43
masak lue: you define a new multi of the operator you want to have the adverb, and provide the adverb as a named parameter. 20:44
lue so, if I want to give infix:<+> the adverb :quickly, I'd do multi sub infix:<+>($a, $b, $quickly) ? 20:46
masak :$quickly
so it still takes two positional parameters. and one named.
ash_ then how would you call that? 20:47
masak 4 + 5 :quickly
dalek kudo: 2740248 | masak++ | src/core/Any-list.pm:
[src/core/Any-list.pm] be more forgiving

In the min/max/minmax methods, even though we should technically expect to get only -1, 0, or +1, we'll instead check for negative, zero, and positive. This due to at least two reasons: (a) Postel's law, (b) it's faster :)
kudo: a20e62d | masak++ | src/core/Any-list.pm:
[src/core/Any-list.pm] simplification

  .signature.params.elems can be written .arity just as well. Did that.
ash_ ah, cool
lue I see now. [must remember operators are just subs with funny syntax] 20:48
20:48 whiteknight joined
plobsing is there anything like is('traced') for subs? I'm trying to debug some multi-dispatch problems I've found with the Ackerman example on rosettacode 20:48
masak plobsing: you might be able to wrap the sub with debug information. 20:50
rakudo: sub foo { say "OH HAI" }; &foo.wrap(sub { say "before"; callsame; say "after" }); foo
p6eval rakudo 18189a: OUTPUT«before␤OH HAI␤after␤»
plobsing masak: sure, but I have a sweet tooth.
masak not aware of any ready-made refined sugare for you, 'fraid. 20:51
ash_ is there a way to get a stack trace in rakudo? 20:52
masak rakudo: sub foo { bar }; sub bar { baz }; sub baz { die "stack trace" }; foo 20:54
p6eval rakudo 18189a: OUTPUT«stack trace␤ in 'baz' at line 22:/tmp/1l5_HJIQaM␤ in 'bar' at line 22:/tmp/1l5_HJIQaM␤ in 'foo' at line 22:/tmp/1l5_HJIQaM␤ in main program body at line 22:/tmp/1l5_HJIQaM␤»
ash_ can you make one without die? (like something you could assign to a variable?)
masak not that I'm aware. 20:55
sounds like you want the &callframe function of S06.
ash_ ya, actually, now that you mention, that is what i am after 20:56
plobsing rakudo: multi sub B() { say "multi" }; &B.wrap(sub {say "before"; callsame; say "after"}); B() 21:01
p6eval rakudo 18189a: OUTPUT«get_attr_str() not implemented in class 'Perl6MultiSub'␤ in main program body at line 1␤»
plobsing rakudo: sub B() { say "multi" }; &B.wrap(sub {say "before"; callsame; say "after"}); B()
p6eval rakudo 18189a: OUTPUT«before␤multi␤after␤»
plobsing rakudobug?
ashleydev ash_: it'd be a cool CPAN module that would make use of local::lib that you could just do that use 'cpan.perl.com' and it would do a local::lib build of cpan modules and cache them... 21:02
tadzik rakudo: sub B() { say "curious" }; B.wrap(sub {say "before"; callsame; say "after"}); B() 21:03
p6eval rakudo 18189a: OUTPUT«curious␤Method 'wrap' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/BgAvBV0wV0␤»
tadzik oh right
masak plobsing: seems so. I'd be surprised if it isn't already known, though. 21:04
masak checks
rakudo: (sub f { }).wrap(-> { }) 21:05
p6eval rakudo 18189a: ( no output )
masak rakudo: (sub f { }).wrap(-> { say "OH HAI" }); f 21:06
p6eval rakudo 18189a: OUTPUT«OH HAI␤»
masak seems rt.perl.org/rt3/Ticket/Display.html?id=76420 can be closed.
...or taken to tests, at least.
masak submits wrap/multi rakudobug
21:06 Kodi left
masak plobsing++ 21:06
ash_ since you can currently construct a backtrace for the error messages when get a fail/die, is there any reason you couldn't construct one for debug purposes? 21:07
masak ash_: no-one has needed it before.
or no-one has asked, at least.
ash_ but using that, couldn't you set &callframe? 21:08
also, why is <invizible_frame> part of annotations? is that misspelled on purpose?
github.com/rakudo/rakudo/blob/f8763...ter.pm#L12 is what i am talking about btw, the spelling thing 21:10
it works, so i assume its correct, just odd to me thats all
ash_ ponders how hard it would be to implement callframe if we already do it for exceptions 21:11
masak ash_: that's clearly jnthn being lolcat-y.
ash_ masak: ah, thats fine, just checking :)
i know there are some non native english speaks around here, so i was making sure it wasn't a mistake 21:12
masak good :)
jnthn's native language is lolspeak :P
ash_ lol
can haz yarn 'foo'? 21:13
plobsing is there such things as rude lolspeak and very rude lolspeak?
tadzik OH NOES RUDENESS MAKES KITTEHZ CRY :(
there should be a module allowing 'can haz $a' and 'I can haz $a' instead of 'has $.a' and 'has $!a' 21:14
is it doable at the moment? :)
ash_ can you make a fail object that isn't going to be thrown?
Failure.new 'foo' and fail 'foo' both throw 21:15
tadzik hmm
lue rakudo: sub I_can_haz($a) { say "$a to you" }; I_can_haz "hello";
p6eval rakudo 18189a: OUTPUT«hello to you␤»
21:16 Holy_Cow left
tadzik rakudo: my $x; try { $x = Failure.new('foo')}; say "alive; {$x.WHAT}" 21:16
p6eval rakudo 18189a: OUTPUT«alive; Failure()␤»
tadzik ash_: ↑
ash_ rakudo: my $x = Exception.new: 'boom'; say $x.WHAT; 21:17
p6eval rakudo 18189a: OUTPUT«Exception()␤»
masak tadzik: don't know if you're still there. I just tried making a change to make dependencies work, and failed miserably. :) 21:18
plobsing rosettacode.org/wiki/Ackermann_function#Perl_6 multi-dispatch example fails rather quickly for A(9,6)
(I would expect it to take a while to fail) 21:19
masak tadzik: the tests are a harsh judge.
tadzik masak: still there, but mostly my spirit is there. As I said, the exams hell is approaching madly. I'll be usable again on 4th of Sep., maybe 3th
masak ok, no worries.
I'm shutting down for tonight, I think.
need to ponder how the deps thing is to be done. 21:20
good luck with exams hell.
g'♞, #perl6
tadzik oh, I'll need that
gnite
21:20 masak left 21:22 IcyBee left 21:26 alester joined
lue where/how does Grammar parse operators? Or is that more in the realm of Actions.pm? [things like 3 + 2] 21:27
ash_ lue: look for token infix 21:28
infix ops are part of the proto token infix { }
lue is it token infixish ? [ there is no proto token infix {} ] 21:31
ash_ err, ya, infixish is it 21:35
the actual infix sub's are constructed in Actions.pm
the reason you can call say:
rakudo: say &infix:<+>(1, 2);
p6eval rakudo 18189a: OUTPUT«3␤»
ash_ is because the ops are defined as infix:<>
lue I'm interested in how &infix:<+>(1,2) turns into 1+2, because I think knowing that would help with implementing adverbs 21:38
ash_ do you mean that the other way around? 21:39
how 1 + 2 gets turned into &infix:<+>(1, 2)?
because &infix:<+>(1, 2); is just a sub
lue erm, yes. How &infix:<+>(1,2) can be written 1+2. [just put the R metaop in front of 'turns into' in my last statement :)] 21:40
ash_ rakudo: say 1 + 2 * 3; say &infix:<+>(1, &infix:<*>(2, 3));
p6eval rakudo 18189a: OUTPUT«7␤7␤»
ash_ its how the grammar parses the code and turns it into an AST, then the AST turns it into actual ops in the vm, which are mostly implemented wit subs 21:41
lue: have you read S05 or the advent calendar yet? 21:43
21:44 [particle] left
ash_ perl6advent.wordpress.com/2009/12/2...d-actions/ talks a good bit about grammars, and gives some good examples, if you haven't read that, i'd start there 21:44
lue I am actually going to the advent calendar now (2009)
ash_ they are all worth reading
21:45 ruoso left 21:46 timbunce left, Ross joined 21:48 [particle] joined 21:50 timbunce joined 21:51 timbunce left
tadzik see you in a week guys o/ 21:51
21:52 tadzik left 21:53 sekimura left 21:54 sekimura joined
Tene It really makes me happy whenever I see someone recommending that article I wrote. :) 21:54
ash_ Tene++ adventcalenders++
21:56 risou joined 21:57 [particle] left 21:58 [particle] joined 22:02 alester left 22:03 masonkramer joined 22:08 perlygatekeeper left 22:11 perlygatekeeper joined 22:18 risou left 22:20 patspam1 left 22:30 Guest23195 left 22:31 tylercurtis joined 22:32 perlygatekeeper left
dalek odel: 1de869a | ++ | java/runtime/ (6 files):
[java] compiling but non working addition of 5 more classes into the dependency circle
22:32
22:32 patspam joined 22:33 justatheory joined 22:37 perlygatekeeper joined
lue rakudo: say (1,2) «*» (3,4) 22:43
p6eval rakudo 18189a: OUTPUT«38␤»
lue The REPL fails on that (problem with the «»). Has that been already reported? 22:44
Tene lue: repl doesn't support unicode 22:46
ash_ you can alway use << instead of « so you know 22:49
sorear hello #perl6 22:51
mberends good * sorear 22:56
23:03 ejs left
lue that seems a bit... archaic [the not support thing] 23:11
Tene lue: feel free to fix it. :) 23:15
It's been a long-standing bug. 23:16
lue I would, but as of yet I have never been able to find the REPL in the source code.
Does anyone know where it is? 23:17
sorear didn't I tell you once? 23:18
oh, no, it was waste I told 23:19
unless that was you
lue no, it wasn't. 23:20
sorear src/HLL/Compiler.pm in git://github.com/perl6/nqp-rx.git
23:20 tylercurtis left
lue thank you, sorear. 23:21
amazing how the REPL takes so little code. I can see why it hasn't been fixed yet. 23:27
23:28 Ross left 23:30 sekimura left 23:32 udait joined 23:34 sekimura joined
lue erm, disregard that last statement. [I forgot to git pull my copy of nqp-rx] 23:35
23:36 udait left 23:40 risou joined 23:46 risou left 23:52 muixirt left 23:54 hercynium joined, risou joined