»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moritz_ on 30 July 2009. |
|||
00:07
Chillance_ joined
00:24
Chillance left
00:26
maja_ joined
00:28
missingthepoint joined
00:32
alester joined
00:39
SmokeMachine joined,
maja left
00:41
FCO left
00:44
awwaiid joined
00:52
tann left
01:03
kst` left,
kst joined
01:09
Chillance_ left
01:10
unitxt left
01:16
jferrero left
01:17
Jedai joined
01:29
agentzh left
01:30
tann joined
01:38
tann left
02:00
agentzh joined,
ihrd joined,
agentzh1 joined
02:01
ihrd left
02:03
agentzh left
02:05
wayland76 joined
|
|||
wayland76 | ping bots | 02:05 | |
phenny | wayland76: 08 Aug 19:34Z <nperez> tell wayland76 I am interested what the plan is for polling io handles (ie. select(2)) and am willing to be guided/mentored to do the work | ||
nperez returns | 02:07 | ||
wayland76 | phenny: tell nperez There's currently no plan for pollig IO handles that I'm aware of. Part of the reason for this may be that the concurrency spec is a complete shemozzle, and the two will quite possibly interact. | ||
phenny | wayland76: I'll pass that on when nperez is around. | ||
nperez | I am working on writing an IO::Select class at the moment | ||
phenny | nperez: 02:07Z <wayland76> tell nperez There's currently no plan for pollig IO handles that I'm aware of. Part of the reason for this may be that the concurrency spec is a complete shemozzle, and the two will quite possibly interact. | ||
wayland76 | Ok, looks like I don't need to tell phennt :) | ||
s/class/role/ ??? | |||
nperez | just implementing the perl 5 IO::Select as a class. | 02:08 | |
wayland76 | Ah, ok | ||
nperez | sockets can be polled in parrot land | ||
and I plan on using that | |||
wayland76 | Has this been brought up on the mailing list at all? | ||
nperez | nah, just in here. | ||
payload | rakudo: sub foo { "fooo".subst(/o/, '') }; multi bar { "fooo".subst(/o/, ''); }; say foo; say bar; # evil | 02:09 | |
wayland76 | Ok, do you want to put something on the mailing list asking for spec clarification, or shall I? | ||
p6eval | rakudo 39cc84: OUTPUT«fooLexical '$/' not foundin sub bar (/tmp/RjKI24ERPq:2)called from Main (/tmp/RjKI24ERPq:2)» | ||
nperez | I'm not interested in navigating the spec resolution. I just want a working select | ||
wayland76 | I also note that S32/IO says that the select function is "Gone" | ||
nperez | exactly | ||
hence this class | 02:10 | ||
wayland76 | In other words, there's no plan to include it in P6 | ||
Ok, so you're intending this to be an external library? | |||
alester | Why does every conversation about Perl 6 have to be about competition? | ||
nperez | right now, yes | ||
alester | "They have missed the boat." | ||
What boat is that? | |||
nperez | unfortunately, this IO::Select class will be parrot specific | 02:11 | |
rakudo specific, too since I will need to use the Q:PIR construct | |||
wayland76 | nperez: Ok, as an external library, I'm happy. But I'm completely unqualified to comment on select :). My contribution to the IO spec was moving stuff around, grouping and regularising it, not actually understanding what was going on | ||
you may get more from Rakudo | |||
Sorry | 02:12 | ||
s/Rakudo/ruoso/ | |||
nperez | Yeah, not understanding why select was removed | ||
it is incredibly useful | |||
wayland76 | alester: Perl is the first Postmodern programming language. Other languages are still trapped in the Modern era :) | ||
nperez: Example? | 02:13 | ||
nperez | erm, POE, heh | ||
wayland76 | Hmm, multiple tail -f, right? | ||
nperez | hard to write POE without select | ||
wayland76 | Have you seen the concurrency stuff that's been discussed in the past? | ||
nperez | in fact, multiplexing IO across multiple file descriptors is kind of hard to do without select | ||
wayland76 | With an event-based model underlying the threads? | ||
nperez | I have not seen that, but I find it rather odd to throw out select(2) functionality | 02:14 | |
wayland76 | nperez: If I had to guess, I'd say the plan was to replace "Select" with something at a higher level, and use "select" under the hood | ||
nperez: I think you should look at the concurrency stuff. I'll find you something appropriate. Justamo | 02:15 | ||
Ok, looks at S17, in the Intro section before the "Overview" | 02:16 | ||
There's a link there that explains what the plan is | |||
nperez | Not to knock on the concurrency stuff, but my goal is a naive port of POE to rakudo. POE exists now. POE uses select at it's core (outside of using other event loops). | ||
Which is kind of why I want just plain old select :) | 02:17 | ||
wayland76 | I see your goal, but allow me to point out that P6 plans to have its own event loop | ||
nperez | That's fine. POE is more than just an event loop. It encapsulates event loops. | 02:18 | |
wayland76 | So I guess I'm just suggesting that you keep that in mind as you pursue your goal | ||
Ok, as long as you understand the situation, I'm happy | |||
You may still be interested in discussing this with ruoso if you see him though. | 02:19 | ||
nperez | Sure | ||
wayland76 | I'm sure he understands the thinking behind the IO spec better than I do | 02:20 | |
But I doubt either of us originated the part that says that select is gone | |||
Which is why I suggested the mailing list | |||
Anyway, I hope all this helps some :) | |||
nperez | It sure does. | ||
wayland76 | Anyway, I gotta go, unless you have another particular question at the moment | 02:21 | |
nperez | I'm good | ||
wayland76 | ok, great | 02:22 | |
02:22
wayland76 left
|
|||
__ash__ | are state variables like static variables | 02:30 | |
missingthepoint | __ash__: you mean static variables in C? | 02:56 | |
__ash__ | yeah | ||
a similar concept at least | 02:57 | ||
missingthepoint | i don't think so... (i could be wrong, i'm one of the newest folk around here) | 03:05 | |
have you seen perlcabal.org/syn/S03.html ? The bit under "Declarators"? | |||
03:06
agentzh joined
03:10
agentzh left
|
|||
__ash__ | svn.pugscode.org/pugs/examples/cashiers.pl is what gave me that impression | 03:10 | |
03:10
agentzh joined
|
|||
__ash__ | in function gen_cashier; the variable 'state $cash_in_store' retains its value if you call the function multiple times, so at least in that sense its functioning similar to a static variable in C | 03:11 | |
03:12
agentzh1 left
03:14
agentzh left,
agentzh joined
|
|||
missingthepoint | ok, that's true... but the scoping is note the same | 03:15 | |
*not | |||
03:15
agentzh left
|
|||
__ash__ | missingthepoint: i found it, perlcabal.org/syn/S04.html "There is a new state declarator that introduces a lexically scoped variable like my does, but with a lifetime that persists for the life of the closure, so that it keeps its value from the end of one call to the beginning of the next. Separate clones of the closure get separate state variables." so in a sub, as long as you don't clone the sub it will have the same value | 03:15 | |
03:15
agentzh joined
|
|||
missingthepoint | if by "sub" you mean "closure" ;) | 03:17 | |
__ash__ | a sub is a closure, or a form of one | 03:18 | |
03:20
donaldh left,
donaldh joined
|
|||
pugs_svn | r27938 | bpetering++ | [examples] fixed cashiers.pl to work with Rakudo | 03:20 | |
03:23
nihiliad left,
nihiliad joined
03:27
xomas_ left
|
|||
missingthepoint | __ash__: is there anything else i can "help" with? (you figured that one out yourself ;) | 03:32 | |
__ash__ | have you done anything with the grammar stuff? | 03:33 | |
missingthepoint | not really, what are you trying to do? | ||
(it's ok to ask beginner questions in here... it helps as a matter of fact, so just go ahead and ask...) | 03:35 | ||
__ash__ | i want to fix the problem with classes not being able to explcitly call composed objects (like calling self.Foo.bar within a method) | 03:37 | |
its not implemented in rakudo yet | 03:38 | ||
03:38
sri_kraih joined
|
|||
__ash__ | see spec S12-class/inheritence.t | 03:39 | |
03:39
mepplock joined
|
|||
__ash__ | it has what i am refeering too | 03:39 | |
if i am not mistaken, thats a grammar + object composition issue | |||
look at line 20, super_baz has the functionalty thats currently not implemented | 03:40 | ||
03:41
meppl left
03:42
molaf joined,
mepplock is now known as meppl
|
|||
__ash__ | if you want to help me out that would be great, i am still learning my way around the interior of perl 6 | 03:42 | |
missingthepoint | ah, in method super_baz()? | 03:44 | |
__ash__ | yeah | ||
my syntax above was off, sorry, it should be self.Foo::bar(); | |||
missingthepoint | no problem :) | 03:45 | |
03:45
molaf left
|
|||
missingthepoint | have you got the latest rakudo revision checked out? | 03:46 | |
__ash__ | yup | ||
03:46
frew joined
|
|||
missingthepoint | have you done a "make spectest"? | 03:47 | |
__ash__ | yup | ||
missingthepoint | ok, you can now go to rakudo<whatever>/t/spec/S12-class/inheritance.rakudo | 03:48 | |
the test for that is skipped with note "method resolution bug" | |||
so, you probably want to look in the bug tracker for notes on the bug | |||
mikehh_ | rakudo (39cc848) builds on parrot r40476 make test/make spectest (up to 27938) PASS - Ubuntu 9.04 amd64 | 03:51 | |
03:51
synth left,
synth joined
|
|||
__ash__ | where is the bug tracker for perl 6, i haven't been able to find it yet | 03:52 | |
missingthepoint | __ash__: it's at rt.perl.org/rt3/Public/?nossl=true, more or less :) | 03:53 | |
(choose queue) | |||
__ash__ | rt.perl.org/rt3/Public/Bug/Display.html?id=46665 guess thats what they were referring too | 03:55 | |
missingthepoint | __ash__: concur | ||
(i can't find anything closer to "method resolution bug"... RT is less than awesome.) | 03:56 | ||
got parrot skills? :) | 03:57 | ||
__ash__ | i was planning on building some by working on this issue :P | 03:58 | |
missingthepoint | :D | ||
go right ahead... :( | |||
err, :) (i can't type today) | |||
__ash__ | one question, thats kinda stupid, i have seen a few files with .p6 but most with .pl is there a preferred extension for perl 6? | 03:59 | |
missingthepoint | i can't vouch for #parrot, but i imagine they'd offer some assistance if you pop over there and ask for a few pointers | ||
.pl seems to be the de facto standard | 04:00 | ||
(that's actually an interesting question, because it implies the question "is Perl 6 still Perl?") | 04:01 | ||
__ash__ | well, with use v5 and use v6; it is :P at least some times | ||
missingthepoint | :) | 04:02 | |
__ash__ | the parrot irc server hates me btw, it never lets me connect | ||
04:03
nihiliad left,
nihiliad joined
|
|||
__ash__ | oh it actually let me on for once, nm | 04:05 | |
04:06
Jedai left
|
|||
missingthepoint | i was wondering what extension to give my files too :) | 04:07 | |
i've settled for .pl, which reveals which side of that question i come down on | 04:08 | ||
i see it like so - if you have a narrow view of "Perl", you could argue the difference between Perl <= 5 and Perl 6 is that it changed from a runtime to a specification | 04:10 | ||
but if you have a wide view of "Perl" - i.e., it's a community - then Perl 6 is still Perl | |||
I go with the latter :) | |||
__ash__ | hm... the error message you get when you call the methods like that seems to be coming from parrot, not any of the perl 6 stuff | 04:11 | |
missingthepoint | what errmsg? | ||
__ash__ | Method '%Ss' not found for invocant of class '%Ss' | 04:12 | |
missingthepoint | that would confirm the diagnosis of RT #46665 | ||
__ash__ | which is thrown when the methods don't exist in the objects vtable | ||
04:13
agentzh left
04:18
nihiliad left,
nihiliad joined
|
|||
missingthepoint | *tend to confirm | 04:19 | |
__ash__ | missingthepoint: well, this is related to parrot more so than perl, i wonder how vtables work in parrot | 04:20 | |
they have tests for overriding a method from a parent in a child, but not explcitily calling a parents method from a child (IE like super) | |||
i think i am going to ask on the mailing list if they have a specification for calling parent object methods explicitly | 04:24 | ||
missingthepoint | __ash__: might like to look at docs.parrot.org/parrot/latest/html/...q.pod.html first | 04:30 | |
__ash__ | docs.parrot.org/parrot/latest/html/...s.pod.html i am reading this | 04:31 | |
which defines how objects should work | |||
missingthepoint | ah, no problem | ||
__ash__ | so far i haven't seen anyhting defining how calling a parent's method works | ||
missingthepoint | my guess would be, "if not in the design docs, ask on mailing list" | ||
__ash__ | my thoughts exactly | 04:32 | |
yeah i don't see it in there | |||
missingthepoint | or perhaps in IRC (if you can get it working) | 04:35 | |
__ash__ | i got irc working, but it seems very quiet, i don't think many people are on at the moment so i figured the mailing list would probably work | ||
missingthepoint | maybe give it a few hours, not sure of your localtime, but i find things pick up around here when western europe wakes up :) | 04:37 | |
that may be the same for #parrot | |||
__ash__ | yeah i wouldn't be surprised | ||
missingthepoint | i'll be waking up about the same time as western europe :P | 04:38 | |
04:39
eMaX left
|
|||
__ash__ | i'll be at work then, but maybe i can hop on and not get to distracted in here :P | 04:39 | |
04:41
frew left
|
|||
__ash__ | well, i am going to sleep, cya around missingthepoint | 04:41 | |
missingthepoint | cya ash :) | 04:42 | |
04:42
__ash__ left
|
|||
missingthepoint | (if you want a shorter form, use 'ben') | 04:42 | |
04:42
nihiliad left
04:43
nihiliad joined
04:44
agentzh joined
04:54
tann joined
|
|||
eternaleye | nperez: the underpinning for much of the thinking on concurrency in P6 is www.seas.upenn.edu/~lipeng/homepage/unify.html | 04:56 | |
pugs_svn | r27939 | kyle++ | [t/spec] relabel todo test | 05:02 | |
r27940 | kyle++ | [t/spec] Test for RT #66886 | 05:03 | ||
r27941 | kyle++ | [t/spec] Ticket 67786: Merged into ticket #67256 (so I renamed the tests) | |||
r27942 | kyle++ | [t/spec] Take # out of test description and mark skip as "noauto" | |||
05:03
tann left
|
|||
missingthepoint | kyle++ # test suite work :) | 05:05 | |
05:08
tann joined
05:10
nihiliad left
05:18
drbean joined
05:22
carlin joined
05:37
carlin left,
carlin joined
05:38
tann_ joined
05:40
orafu left
05:41
orafu joined
05:46
tann left
05:50
tann_ left
06:00
eMaX joined,
carlin left
06:13
rfordinal3643 left
06:17
missingthepoint left
|
|||
moritz_ | good morning | 06:19 | |
japhb | o/ | 06:23 | |
06:25
finanalyst joined
|
|||
mberends | hi moritz_ | 06:26 | |
moritz_ | good localtime japhb, mberends, * | 06:27 | |
mberends | that reference eternaleye++ gave for concurrency looks great | 06:32 | |
eternaleye | mberends: Just something that was mentioned in this channel long ago which I backlogged | 06:36 | |
mberends | overhead of just 48 bytes per thread with continuation passing style is awesome performance | 06:38 | |
06:58
Su-Shee joined
|
|||
Su-Shee | good morning! | 06:58 | |
moritz_ | good morning Su-Shee | 06:59 | |
06:59
eMaX left
|
|||
Su-Shee | hi moritz. :) how many raudo improvements before 9 today? ;) | 07:00 | |
07:01
dukeleto joined
|
|||
moritz_ | Su-Shee: none. Not really awake yet :( | 07:01 | |
Su-Shee | ;) | 07:02 | |
moritz_ | rakudo: runinstead('echo foo') | ||
p6eval | rakudo 39cc84: OUTPUT«Could not find non-existent sub runinstead» | ||
07:07
nacho_ left
07:09
rfordinal joined
07:20
donaldh left,
donaldh joined
07:21
rfordinal left,
rfordinal joined
07:26
eMaX joined
07:38
szabgab joined
07:40
Jedai joined
07:43
jkva joined
|
|||
moritz_ | my attempt to provide "Not yet implemented" messages in a fancy way failed. | 07:55 | |
if you define a lexical in the setting, assign a block to it and call it, it will give a Null PMC access | |||
Matt-W | :o | 07:56 | |
That's not good | |||
moritz_ | aye | ||
maybe I'll settle for stupid code duplication instead | |||
07:58
jferrero joined
|
|||
frettled | I wonder about one thing regarding stringification of hashes: | 07:58 | |
say %hash; -> not-so-pretty-printed contents of the hash, each key+value pair printed, but with no obvious separation. | 07:59 | ||
say ~%hash; -> pretty-printed contents of the hash, each key+value pair printed on separate lines. | |||
mberends | I knew you were going to ask that ;) I think the magic might be in the Str method of the Hash class | 08:00 | |
frettled | Would it be correct to say that with xABsay %hashxBB, the hash is stringified as a single item, while xABsay ~%hashxBB stringifies and xABsaysxBB each hash element? | ||
moritz_ | that's because a hash in list context returns its pairs | ||
08:00
Jedai left
|
|||
moritz_ | and say() doesn't insert anything between list items | 08:01 | |
(which would be a stupid default) | |||
frettled | Ahaha! | ||
moritz_ | you should observe the same with lists | ||
rakudo: say <3 4 5> | |||
rakudo: say ~<3 4 5> | |||
p6eval | rakudo 39cc84: OUTPUT«345» | ||
rakudo 39cc84: OUTPUT«3 4 5» | |||
frettled | rakudo: say %foo = <bar baz> = <gazonk frobble>; say %foo; | 08:02 | |
p6eval | rakudo 39cc84: OUTPUT«Symbol '%foo' not predeclared in <anonymous> (/tmp/mrJsqBfiPQ:2)in Main (src/gen_setting.pm:3369)» | ||
frettled | oops, typo | ||
rakudo: say %foo = <bar baz> Z <gazonk frobble>; say %foo; | |||
p6eval | rakudo 39cc84: OUTPUT«Symbol '%foo' not predeclared in <anonymous> (/tmp/ytowSuvrgL:2)in Main (src/gen_setting.pm:3369)» | ||
frettled | hrm. | ||
moritz_ | try a 'my' at the start | ||
frettled | Double typo, then. | ||
rakudo: my %foo = <bar baz> Z <gazonk frobble>; say %foo; | |||
moritz_: (thanks) | 08:03 | ||
p6eval | rakudo 39cc84: OUTPUT«baz frobblebar gazonk» | ||
moritz_ | rakudo: my %foo = <bar baz> Z <gazonk frobble>; say ~%foo; | ||
p6eval | rakudo 39cc84: OUTPUT«baz frobblebar gazonk» | ||
frettled | The interesting thing here is the whitespace between the key and value | ||
moritz_ | it's a \t | ||
rakudo: (~:a<b>).perl | |||
frettled | Yes, but it also means that it's not entirely treating it in list context, doesn't it? | ||
moritz_ | rakudo: say (~:a<b>).perl | 08:04 | |
p6eval | rakudo 39cc84: ( no output ) | ||
rakudo 39cc84: OUTPUT«"a\tb"» | |||
moritz_ | frettled: it just means that Pair objects don't flatten in list context | ||
frettled | moritz_: ah. that's an good explanation. | ||
moritz_ | %h.list doesn't return the keys and values interleaved, but instead a List of Pair objects | ||
that's different from Perl 5 | 08:05 | ||
and very handy | |||
frettled | Yes, definitely. | ||
It was one of my pet peeves with Perl 5. | |||
I also never could quite remember the shorthand for creating a hash from two lists. In Perl 6, it's just so trivial. | 08:06 | ||
Matt-W | Perl 6 handles hashes much more sensibly :) | ||
frettled | I think a fair way of putting it is to say that Perl 6 handles hashes and objects as first class citizens. | 08:07 | |
mberends | but list separated its elements with space, and hash with newline: | 08:10 | |
rakudo: my %foo = <bar baz> Z <gazonk frobble>; say ~(%foo.list); | |||
p6eval | rakudo 39cc84: OUTPUT«baz frobble bar gazonk» | ||
mberends | no newline like hash gave us :( | 08:11 | |
frettled | hmm. | 08:12 | |
Matt-W | I must admit I always tend to write my own output routines | 08:13 | |
mberends | the separator seems to be hardwired into Hash or List | ||
Matt-W | In Perl 5 I was never sure of the default rendering rules | ||
frettled | rakudo: my %foo = <bar baz> Z <gazonk frobble>; print ~(%foo.list); print ~%foo; | ||
p6eval | rakudo 39cc84: OUTPUT«baz frobble bar gazonkbaz frobblebar gazonk» | ||
Matt-W | and .join is so easy | ||
frettled | mberends: yes, it appears to be fundamental to the stringification | 08:14 | |
mberends | you can roll your own stringification by overriding Str in a class | ||
Su-Shee | mberends: meaning home brewn pickle/serialize and whateverit'scalled if I dump objects into strings? | 08:15 | |
08:15
masak joined
|
|||
mberends | yes | 08:15 | |
masak | o/ | ||
mberends | o/ Destroyer | 08:16 | |
masak | man, I like that title. | ||
moritz_ | \o | 08:17 | |
masak: pmichaud++ confirmed yesterday night that the issue with :foo[] was a parsing bug | |||
frettled | masak: you should :) | 08:18 | |
mberends | rakudo: class A { has $.a; method Str { $.a.uc } }; my $a = A.new( a=>"oh hai" ); $a.say | ||
masak | moritz_: good. | ||
p6eval | rakudo 39cc84: OUTPUT«OH HAI» | ||
mberends | custom stringify | 08:19 | |
08:19
zamolxes left
|
|||
moritz_ | rakudo: say Str('x') | 08:20 | |
p6eval | rakudo 39cc84: OUTPUT«invoke() not implemented in class 'Perl6Str'in Main (/tmp/zLH6oPQJfN:2)» | ||
08:21
carlin joined
|
|||
frettled | Is it possible to override the stringification without subclassing, BTW? | 08:21 | |
moritz_ | rakudo: role UC { method Str { 'OH HAI' } }; my $x = 'foo' but UC; say $x | ||
p6eval | rakudo 39cc84: OUTPUT«foo» | ||
moritz_ | rakudo: role UC { method Str { 'OH HAI' } }; my $x = 5 but UC; say $x | 08:22 | |
p6eval | rakudo 39cc84: OUTPUT«5» | ||
moritz_ | rakudo: role UC { method Str { 'OH HAI' } }; class A {}; my $x = A.new but UC; say $x | ||
p6eval | rakudo 39cc84: OUTPUT«OH HAI» | ||
Matt-W | rakudo: class Str is also { method Str { 'OH HAI' } }; my Str $foo = 'wibble'; $foo.say; | 08:23 | |
p6eval | rakudo 39cc84: OUTPUT«wibble» | ||
Matt-W | bah | ||
Matt-W throws toys | |||
moritz_ | well, a Str doesn't have to be coerced to Str to be printed. | 08:24 | |
Matt-W | True | 08:25 | |
Sorry, it's only half past nine | |||
masak | :) | ||
Matt-W | rakudo: class Int is also { method Str { 'OH HAI' } }; my Int $foo = 5; $foo.say; | 08:26 | |
p6eval | rakudo 39cc84: ( no output ) | ||
Matt-W | heh | ||
frettled | But this wouldn't work without explicitly declaring as Str, or in values implicit in hashes, right? | 08:27 | |
mberends | the \t comes from rakudo/src/classes/Pair.pir:42, dunno about the \n | ||
08:35
kane_ left
|
|||
frettled | Hmm, that complicates matters a tad. But as Matt-W observes, it's rather easy to roll your own pretty-printing, and perhaps more so now than before. | 08:37 | |
moritz_ | you can provide your own .fmt | ||
Matt-W | I've been just doing things like @list.join(', ').say; | 08:42 | |
moritz_ | which is a very sensible thing to do :-) | 08:43 | |
Matt-W | or you could feed it to Form.pm :) | ||
some of that does actually work | |||
frettled | moritz_: Ah, so there's a .fmt, neat! | ||
moritz_ | one step closer to world domination: Tim offered me commit access to the java2perl6 repo on which some of the dbdi work will be based on | 08:44 | |
Matt-W | :) | ||
hurrah | |||
japhb | moritz_: yay! | 08:45 | |
frettled | java2perl6? Is that a score? (Java 2 - Perl 6) | ||
Su-Shee | moritz_: for a shiny DBI running, I'll make you home made organic chocolate truffles. :) | ||
moritz_ | frettled: it's a header translater | 08:46 | |
frettled | A DBI that automagically creates classes based on SQL queries! ;) | ||
masak | frettled: it's the relative amounts of the two ingredients in a new, frightening hybrid language. | ||
moritz_ | Su-Shee: I'll take your word for it | ||
frettled: actually it's used to convert the Java ODBC classes to Perl 6 | |||
because the parrot dbdi will use ODBC's API for driver backends internally | 08:47 | ||
frettled | masak: /o\ | 08:48 | |
Su-Shee | this only means that it is modeled after odbc not that I need java to run perl 6 dbi? | ||
moritz_ | Su-Shee: right | ||
japhb | I thought that was 'JDBC'? | ||
frettled | moritz_: aha. What happens to database library specific extensions? | ||
moritz_ | Su-Shee: and I hope that the Perl 6 frontend will be as simple as the Perl 5 one | 08:49 | |
frettled | or preferably far simpler | ||
moritz_ | japhb: could also be, I'm not sure | ||
far simpler? how so? | |||
Matt-W | moritz_: I'm sure it will be | ||
if it's not, we'll have to fix it | |||
moritz_ | anyay, I just started to dig into the whole stuff | ||
and I'm happy to report more when I grok a bit more of it | 08:50 | ||
frettled | moritz_: If we're looking at DBI's paradigm, then it's pretty confusing. | ||
I don't think it's a very good model for doing stuff. | |||
moritz_ | frettled: I found the API very intuitive. | ||
one thing I'd surely like to have is named placeholders in SQL that can be used with named params in Perl 6 | 08:51 | ||
Su-Shee | frettled: on the other hand: does it really matter wether it's DBI old style or *dbc as long as it's nice and smooth to use? | ||
08:51
iblechbot joined
|
|||
Matt-W | moritz_: that should be eminently possible | 08:51 | |
moritz_ | but I don't know if the databases support this | ||
Matt-W | who cares? | ||
frettled | Su-Shee: I think it matters that it's nice and smooth to use, and that DBI old style _isn't_ nice or smooth. | ||
Su-Shee | moritz_: isn't that a driver problem than? | ||
Matt-W | we can translate them into positional placeholders in the Perl 6 layer | ||
and then just feed them in the same way that Perl 5's DBI does | 08:52 | ||
japhb | Su-Shee: The JDBC thing is only for the DBDI -- the DataBase Driver Interface. DBDI != DBI. DBDI is the interface between DBI and the low-level system driver. DBI is the interface presented to Perl 6. | ||
moritz_ | Matt-W: which implies SQL parsing... don't know if I like that | ||
08:52
cookys left
|
|||
moritz_ | so DBDI = the new DBD? | 08:52 | |
japhb | Perl 6 <-> DBI <-> DBDI <-> DBD, IIRC | 08:53 | |
Matt-W | moritz_: if you pick the right syntax for the named placeholders, you don't have to parse the SQL completely | ||
Su-Shee | japhb: aaaaah. _that_ was illuminating. ok. | ||
japhb | Acronyms++ | ||
Matt-W | moritz_: although I'm just assuming such a syntax is findable | ||
Su-Shee | japhb: so a mysql db api chain looks perl 6 - dbi - dbdi - mysql driver? | ||
moritz_ | Matt-W: you still have to know if it's used inside quotes or not | ||
japhb | Su-Shee: exactly | ||
Matt-W | moritz_: you still don't have to comprehend the entire statement to find quotes | 08:54 | |
moritz_ | Matt-W: ok, good point | ||
Matt-W | Maybe it's a tougher problem than I'm envisaging | 08:57 | |
But I think it might well be possible | |||
frettled | Matt-W: Are you thinking of bound parameters (SELECT foo FROM bar WHERE gazonk = ? AND frobble = ?) ? | 09:03 | |
moritz_ | right | ||
but instead of just positional, I want named | 09:04 | ||
frettled | mm | ||
so would I! | |||
moritz_ | WHERE gazonk = :gaz AND frobble = :frob | ||
$sth.execute(:gaz(42), :frob(23)) | |||
odkit.sourceforge.net/?q=node/18 oracle seems to support that | 09:05 | ||
Matt-W | yes, oracle does support it | 09:14 | |
it's about oracle's only good feature that I've ever found | |||
Su-Shee | the apress sqlite book also mentions it. | 09:15 | |
(not the oracle stuff :) | |||
moritz_ | DBD::Pg also mentions named placeholders | 09:17 | |
so, perfect world an all | |||
frettled | moritz_: and perhaps there could be a way to magick it with databases that don't support it. | 09:19 | |
09:20
zamolxes joined
|
|||
moritz_ | frettled: maybe. But that's low priority for me | 09:20 | |
Su-Shee | well depends.. mysql is an important db and extremely common. | 09:21 | |
frettled | unfortunately, yes. :D | ||
In a more positive light: MySQL challenges our beliefs of how a database should be, and keeps us on our toes. | 09:22 | ||
moritz_ likes that statement | |||
Matt-W | doesn't challenge mine | 09:23 | |
it's the only one I actually ever used properly | |||
so all other databases continually surprise me with their fancy stored procedures and named placeholders | |||
and subqueries | |||
frettled | and features like e.g. partitioning? | ||
moritz_ | for small scale stuff you don't need that | 09:24 | |
frettled | now, now, don't imply that MySQL is only for small scale stuff, you'll make baby kittens cry. | ||
moritz_ | I did not | 09:25 | |
a => b != b => a | |||
frettled | This is IRC, not science. :D | 09:26 | |
masak | frettled: that's not science, that's mental hygiene. :) | 09:34 | |
Matt-W | We use oracle at work | 09:43 | |
I try to avoid it | |||
it's insanely complicated | |||
a | |||
whole pocket universe all to itself, with its own set of physical constants | |||
09:50
xomas_ joined
09:56
jan_ left
09:58
jan_ joined
|
|||
carlin | I made a very rough attempt at adding mkdir to rakudo, it will create the directory but the mode isn't being set right and I can't figure out why. gist.github.com/165117 is the patch (very basic, still needs a lot of work) | 10:00 | |
10:02
smash left
10:07
araujo left
|
|||
mberends | carlin: is the mode being set to 0 instead of what umask should allow? | 10:13 | |
10:13
pmurias left
10:17
payload left
|
|||
mberends | carlin: your mode parameter may need to be converted to an int | 10:21 | |
carlin | mberends: okay, I'll try that | 10:25 | |
10:25
payload joined
|
|||
mberends | carlin: at both the Parrot (PDD22_io) and Rakudo (S32/IO) levels, rmdir is documented plainly but mkdir is not. It looks like the designers have done that deliberately. The mkdir is mentioned only as an example of IO::FSNode.new(). A mkdir() function would be welcome anyway, but don't be surprised if someone with IO plans wants it rewritten. The thing is, IO is still under review/construction. | 10:36 | |
10:39
M_o_C joined
|
|||
mberends | (still, any working code is better than no code at all) | 10:39 | |
szabgab | hi friends, I am at home and will try to get my act together and start doing some stuff | 10:40 | |
mberends | szabgab++ | 10:41 | |
szabgab | one thing I though during my flight back from YAPC is that the Rakudo naming could be a good escape route from the Perl 6 naming trap some of us feel | ||
so by having a separate set of version numbers of Rakudo we can talk just about Rakudo, without the baggage of when Perl 6 will be ready | 10:42 | ||
mberends | agreed, implementation != spec | 10:43 | |
carlin | mberends: That's alright, it's more an exercise in figuring out how to hack rakudo than anything else | ||
masak | [particle]: ping | ||
mberends | carlin: what kind of values did you want to pass for the mode? | 10:44 | |
carlin | mberends: trying to do it the same as the P5 equivalent | 10:49 | |
masak | phenny: tell [particle] that I'm interested in hearing about the status of S19 implementation in Rakudo. it is something that I wouldn't mind seeing land before April. The new revised ROADMAP puts it at 2, "ought to have" -- I agree. | ||
phenny | masak: I'll pass that on when [particle] is around. | ||
masak | lunch & | ||
mberends | carlin: see parrot/t/pmc/os.t:142,170 the mode is eg 0o555 | 11:05 | |
11:08
donaldh left
11:17
fridim_ joined,
payload left
|
|||
carlin | passing 0o755 works as expected but is that the format the end-user will have to use? (I guess I'll only know that once the IO spec is written) | 11:19 | |
11:20
donaldh joined
|
|||
moritz_ | rakudo: print 0755 | 11:21 | |
p6eval | rakudo 39cc84: OUTPUT«Leading 0 does not indicate octal in Perl 6755» | ||
moritz_ | rakudo: print 0755+1 | 11:22 | |
p6eval | rakudo 39cc84: OUTPUT«Leading 0 does not indicate octal in Perl 6756» | ||
moritz_ | ouch. | ||
mberends | yes, S02 defines 0o for octal | ||
moritz_ | not ouch | ||
rakudo: print 0o755 | |||
p6eval | rakudo 39cc84: OUTPUT«493» | ||
M_o_C | Is there a special reason why you used "print" instead of "say"? | 11:23 | |
rakudo: say 0b11 | 11:24 | ||
p6eval | rakudo 39cc84: OUTPUT«3» | ||
mberends | M_o_C: on IRC it's just laziness (a virtue) but on the console is saves typing "\n" | ||
11:25
adhoc_ joined,
Psyche^ joined
|
|||
moritz_ | M_o_C: no | 11:25 | |
M_o_C | Ok, I only asked because I was not sure wether there were problems with "say"ing numbers. | 11:26 | |
s/only asked/was only asking/ | 11:28 | ||
11:29
szabgab left
|
|||
frettled | Just say so ;) | 11:29 | |
mberends | M_o_C: say is defined as print followed by \n, so they are almost identical | 11:30 | |
11:31
szabgab joined
11:32
pmurias joined
|
|||
M_o_C | mberends: I use 5.010; so I already know, but thanks for helping anyway. | 11:32 | |
mberends | :) | 11:33 | |
carlin | in that case I can leave the mode param as it is | ||
frettled | I was always a bit concerned about how the semantics of file permissions in Perl worked with Windows ... | 11:34 | |
11:35
pmurias left
11:40
adhoc left
11:41
Patterner left,
Psyche^ is now known as Patterner
11:43
SmokeMachine left
11:47
Su-Shee left,
pmurias joined
11:50
meppl left
11:52
szabgab left
|
|||
pugs_svn | r27943 | azawawi++ | [perl6] ignore temporary files | 11:54 | |
r27944 | azawawi++ | [std_hilite] perl6-> Perl 6 typo | 11:57 | ||
r27945 | mberends++ | fixed a bug in t/S32-io/IO-Socket-INET.t etc where an impatient timeout | 12:05 | ||
r27945 | mberends++ | caused random failures, mostly on slower 32 bit systems. | |||
frettled | mberends: cute. | ||
mberends | ...but does it work on anyone else's computer? ;) | ||
frettled | mberends: now we only lack a failure where something goes wrong because faster systems are too fast! | 12:06 | |
mberends | heh | ||
moritz_ | passes on amd64/linux | 12:12 | |
mberends | moritz_++ | 12:13 | |
that failure was really annoying me | 12:14 | ||
moritz_ | i'm now running it a few times to see if it passes reliably | 12:15 | |
mberends++ # fixing the test | |||
mberends | the proof of the pudding is when a variety of platforms survive that one | 12:16 | |
masak runs 'prove -v pudding' | |||
moritz_ | I started about 6 or so of the tests in parallel, it doesn't seem to like that. | ||
mberends | eek! the tempfile name used as a semaphone is constant! | 12:17 | |
frettled | masak: the dog ate it | ||
mberends: yikes! | |||
mberends | moritz_: sorry, it's not parallelizable :( | 12:18 | |
masak | name tempfile after process ID? | 12:19 | |
moritz_ | most test files use "test_file_name." ~ pick(1..1000) ~ ".tmp" or so | ||
mberends | masak: can do something like that, but there are 4 process ID's to choose from | 12:20 | |
frettled | masak: process ID is vulnerable to failures as well. | ||
Okay, it's just a test, but ... | |||
masak | ok. I learn something every day. :) | ||
mberends | right. BSD randomizes and recycles process ID's. | 12:21 | |
masak | but for a tempfile that lives a couple seconds... | ||
or did I misunderstand the problem? | |||
frettled | and several other OS-es cycles process ID numbers, which means that you know you'll get the same ID in a while | 12:22 | |
A hash of the process id plus the time (Perl 6 uses a nice 64-bit time, no?) would probably be sufficient overkill for a test. | |||
masak | rakudo: Time.gmtime.epoch.say | ||
p6eval | rakudo 39cc84: OUTPUT«1249906967» | ||
moritz_ | rakudo: say +time | 12:23 | |
p6eval | rakudo 39cc84: OUTPUT«1249906986.17384» | ||
moritz_ | rakudo: say +time | ||
p6eval | rakudo 39cc84: OUTPUT«1249906994.93095» | ||
masak | ah. :) | ||
mberends | something even simpler would do in this test, for example the test server listening port number | ||
masak | rakudo: ((Temporal::DateTime.new(date => Temporal::Date.new(:year(2010), :month(4)), time => Temporal::Time.new()).epoch - Time.gmtime.epoch) / 86400).ceiling.fmt("%d days left until April!").say | 12:24 | |
p6eval | rakudo 39cc84: OUTPUT«234 days left until April!» | ||
mberends | \o/ | ||
frettled | hee-hee. | 12:25 | |
masak | mberends++ | ||
moritz_ | www.sqlite.org/testing.html | ||
I wish we had such testing for Perl 6 | |||
masak | rakudo: ((Temporal::DateTime.new(date => Temporal::Date.new(:year(2010), :month(4)), time => Temporal::Time.new()).epoch - time) / 86400).ceiling.fmt("%d days left until April!").say # simplification due to moritz_++ | ||
p6eval | rakudo 39cc84: OUTPUT«234 days left until April!» | ||
mberends | masak: this Temporal is not very golf-friendly, is it? | ||
masak | mberends: it could use a string-based constructor. | 12:26 | |
frettled | rakudo: ((Temporal::DateTime.new(date => Temporal::Date.new(:year(1993),:month(9)), Time.gmtime.epoch - time=>Temporal::Time.new()).epoch) / 86400).ceiling.fmt("September %d, 1993").say | ||
moritz_ | a golf friendly version would be to use a precalculated timestamp for April | ||
p6eval | rakudo 39cc84: OUTPUT«Method 'Num' not found for invocant of class 'Perl6Pair'» | ||
masak | one that accepted iso8601 only. | ||
frettled | hrm, where did I mistype? | ||
mberends | masak: how much consensus do we need for that spec change? | 12:27 | |
masak | mberends: very little, I think. | ||
12:27
szabgab joined
|
|||
masak | mberends: but how about we pool the changes to S32-Temporal somewhere and present all the changes at once as a fait accompli? | 12:28 | |
I think that could work better, both for avoiding bikeshedding and for presenting a coherent suggestion. | |||
frettled | Oh, parenthesis-mismatch. | ||
mberends | masak: ok, let's form a little Temporal Cabal somewhere and keep these discussions hidden from anyone who might get in our way ;) | 12:30 | |
Matt-W | masak: coherency is usually good | ||
mberends | world domination is easier when the world doesn't know. | ||
Matt-W | it lets me consider things more properly before my kneejerk reaction triggers | ||
masak | mberends: I'm about to create our like totally secret short-lived fork of the synopses on github. is that OK with you? | 12:32 | |
frettled | TINC | ||
masak | I already have that directory checked out via git-svn. | ||
mberends | :) | ||
frettled | masak: BTW, I have a patch coming up for proto, if I could just recall where I put the code. | ||
masak | frettled: woot. | ||
frettled | masak: I think it may have something to do with checking whether I'd already downloaded the source. In Lisbon, the university had disabled access to port 6666 (whose sub-brilliant idea was it to have versioning tools using a port number frequently used for hiding IRC processes, anyway?), so I had to check out via an SSH tunnel. | 12:34 | |
masak | interesting. | 12:35 | |
frettled | So the patch isn't really brilliant, just allows for ignoring a previously downloaded archive. | 12:36 | |
. o O ( I could probably recreate it in five minutes, but I don't have five minutes right now. ) | |||
masak | frettled: if you find it, don't hesitate to just push it to the github repo. | 12:37 | |
mberends: github.com/masak/temporal-flux-perl6syn -- like, totally sekkrit! | 12:38 | ||
pugs_svn | r27946 | azawawi++ | [std_hilite] fixed cron script | ||
frettled | masak: okay, I can do that (once I figure out how :D ) | 12:39 | |
Matt-W | temporal flux! oh no! | ||
I look forward to seeing what you come up with | 12:40 | ||
and then criticising it :P | |||
12:40
unitxt joined
|
|||
frettled | Hmm, rakudobot and the rakudo I download don't agree on that Temporal::Datetime usage thingy. | 12:40 | |
masak: destroying the destroyer's work? | |||
oops, wrong attribution, should be Matt-W. | |||
mberends | Matt-W: we'll like, totally take control of time ;) | 12:41 | |
Matt-W | frettled: That's what I'm here for... | 12:42 | |
It's one of my primary entertainments | |||
frettled | That reminds me that I should start my attempts at using Web.pm. | ||
masak | frettled: when you do, make sure you come back an criticize me for all the things I've not gotten around to writing yet. | 12:43 | |
that's how progress happens. | |||
frettled | hee-hee | 12:45 | |
masak: like HTML 5 and CSS support? (just guessing) | |||
masak | frettled: that would be awesome. | ||
frettled: Piers suggested that we make a CSS analyzer for Perl 6. | 12:46 | ||
frettled | masak: s/awesome/grand7 | ||
s,7,/, | |||
masak: Yup, that would be good. As would be automagic CSS generation. | |||
masak | one that checked a number of HTML files and tainted the corresponding CSS to show which parts are unused. | ||
frettled | pmichaud++, someone unknown to me and I were briefly talking about this, and one of the things we thought would be grand, was to have a Perl 6 solution for truly embedded code that automagically took care of both HTML 5 and CSS 3. | 12:47 | |
moritz_ | that would be an enourmous project | ||
frettled | PHP doesn't do this (yet), and if Perl 6 thingies get there first, that's a nice feature set to sell. | 12:48 | |
masak | frettled: write the spec, and someone will pick it up. | ||
frettled | moritz_: yup, it requires some deep time with web design, but it would be very rewarding to people making web pages/software. | ||
masak: muahahaha :D | |||
masak | doesn't need to be an ambitious spec, just to get the ball rolling. | ||
frettled | mm | 12:49 | |
masak | JFDI! | ||
:) | |||
frettled | I'll just need to accrue the necessary clue. | ||
12:50
azawawi joined
|
|||
masak | sure. just don't let it block you indefinitely. | 12:50 | |
azawawi | std: "hello" | ||
p6eval | std 27945: OUTPUT«ok 00:04 37m» | ||
azawawi | moritz_, masak: any idea how to debug a Perl 6 application over parrot? | 12:51 | |
masak | if only people with a clue released stuff, there would be no CPAN. (meant as praise, not as an insult to CPAN) | ||
azawawi: gdb? | 12:52 | ||
has worked for me in the past when tracking down memory errors. | |||
moritz_ | azawawi: print-statements? parrot debugger? | ||
azawawi | moritz_: parrot_debugger.exe perl6.pbc your-script.p6 ? | 12:53 | |
moritz_ | azawawi: no idea | ||
12:54
meppl joined
|
|||
azawawi | moritz_: so far i did not find any Perl library to for the parrot debugger... | 12:54 | |
12:56
Thomas88 joined
|
|||
moritz_ | azawawi: it's not all perl, you know :-) | 12:56 | |
azawawi | moritz_: the idea is to create a Padre parrot debugger for Perl 6 using .annotate_line... | 12:57 | |
13:01
szabgab left
13:02
Thomas88 left
13:04
adamski joined
|
|||
frettled | masak: I still haven't managed to find the tuits to add myself to the AUTHORS file :D | 13:04 | |
13:04
SmokeMachine joined
|
|||
masak | frettled: I stand in awe of your utter lack of tuits. | 13:06 | |
frettled | masak: hee-hee | 13:07 | |
masak: this is what happens when you've already over-committed yourself to a bunch of spare time work and somehow have a real life as well. If you're not quite there yet, you've either learned to say "no", or you're too young to have achieved critical mass. ;) | 13:08 | ||
frettled is rather proud that he managed to dodge a xABthank you for volunteeringxBB from mst. | |||
mberends | moritz_: After some attempts, concurrent IO-Socket-INET tests still fail because of trying to re-use the same port number. Would you choose random ports with occasional failures or rather restrict testing to one process at a time? | 13:09 | |
frettled | I'd prefer random ports with occasional soft failures (that is, don't _fail_ the test, but fail the attempt of listening to the port and perhaps retry). | 13:10 | |
mberends | frettled: making the failure 'soft' is too hard right now :( | 13:12 | |
13:14
adhoc_ is now known as adhoc
|
|||
mberends will try again much later, afk& | 13:16 | ||
13:20
jferrero left
13:21
azawawi left
13:32
dragon67 joined
13:33
szabgab joined
|
|||
frettled | Regarding the sort order of hashes: | 13:37 | |
S32 says that successive calls to keys, kv, pairs and values will show the same order, unless the hash has been changed. | |||
13:38
azawawi joined
|
|||
frettled | Chas Owens asked on my blog why the hash appears to have the same sort order as the insert order, is it correct of me to guess that it's because of the rule regarding successive calls? | 13:38 | |
(perhaps this is something I should bother TimToady about :D) | 13:39 | ||
Matt-W | that wouldn't necessarily be anything to do with that | ||
you could stick stuff in in any order at insert time, and still display a stable order between changes | 13:40 | ||
it might just be how hashes currently happen to be implemented | |||
moritz_ | mberends: parallel testing is not a high priority for me as long as *other* tests can run in parallel | 13:41 | |
13:42
ruoso joined
13:44
szabgab left,
szabgab joined
13:51
dragon67_ joined
|
|||
frettled | Matt-W: as it is, it seems to me that what the sort order is after initialization is undefined behaviour. | 13:51 | |
azawawi | masak: ping | 13:52 | |
frettled | Matt-W: and that's fair enough, if we want sorted stuff, we can just do .sort anyway. | ||
Matt-W | frettled: yes, and hashes are then free to internally sort however makes most sense for storage and access efficiency | ||
No significance can be drawn from the ordering a hash produces | 13:53 | ||
masak | azawawi: you pang? | ||
Matt-W | Unless you care to use it to deduce how the hash works inside, but I suggest instead you look at the source code :P | ||
frettled | Matt-W: except for the tiny mention in S32 | ||
Matt-W: perlcabal.org/syn/S32/Containers.html#Hash | |||
Matt-W | yes, but that just says the order is stable as long as the hash isn't changed | ||
it doesn't say what the order is | |||
frettled | exactly | 13:54 | |
ruoso | Hello! | ||
frettled | o/ | ||
masak | oh hai | ||
ruoso | pmurias, hi | ||
Matt-W | frettled: so, is there a point to be made, or are we just agreeing with each other? | ||
frettled | Matt-W: yes | 13:55 | |
:D | |||
carlin | I've made an attempt at implementing mkdir, gist.github.com/165198 anyone mind checking that? | ||
azawawi | masak: while programming november, did u play with parrot_debugger ? | ||
Matt-W | 'yes' is not a good answer to a question with an 'or' in it | ||
frettled | Matt-W: yes. | ||
masak | azawawi: no. | ||
carlin probably got it horribly wrong | |||
frettled | Matt-W: (sorry for acting like a Vorlon there) | ||
Matt-W: It was a question in case someone actually knew whether there was supposed to be a specification for this behaviour or not. | |||
masak | azawawi: I don't even know what parrot_debugger is, to be honest. | 13:56 | |
13:56
dragon67 left
|
|||
moritz_ | the order of .pairs, .values etc. is not at all connected to insertion order, and should not be. | 13:57 | |
azawawi | masak: parrot\parrot_debugger perl6.pbc test.p6 | ||
frettled | moritz_: but is there a defined behaviour somewhere? | ||
azawawi | masak: www.parrotcode.org/docs/debugger.html | ||
frettled can't find it in the synopses. | |||
moritz_ | frettled: what do you mean by "defined behaviour"? | 13:58 | |
azawawi | masak: im trying to find when test.p6 pir code is being executed to start breaking there... | ||
masak | frettled: I think the answer to that is, and should be, "no". | ||
13:58
adamski left
13:59
colomon left
|
|||
Matt-W | frettled: Perl 5 never had a defined behaviour for order of such things, hashes just don't work that way | 13:59 | |
frettled: you'll find the same for hash-based data structures in pretty much any language | 14:00 | ||
frettled | Matt-W: yes, I know that. | ||
Typically, xABhashxBB might imply that you used a hashing algorithm (well, gee :)) to figure it out. | |||
xABDefined behaviourxBB would then be a specification saying that hash indexes are created using a hashing algorithm. | 14:01 | ||
Aha, there is something under xABAutosorted hashesxBB in S09: | 14:02 | ||
Matt-W | What about 'hashes are unordered' | ||
frettled | xABThe downside to making a hash autosort via the iterator is that you'd have to store all the keys in sorted order, and resort it when the hash changes. Alternately, the entire hash could be tied to an ISAM implementation (not included (XXX or should it be?)).xBB | ||
moritz_ | frettled: some things are defined by not defining them.... | ||
frettled | Matt-W: that wouldn't be entirely correct either. :) | 14:03 | |
Matt-W | Or 'The order of items in a hash is stable as long as the hash is not changed, but otherwise nonspecific.' | ||
frettled | moritz_: yes, well, sort of. | ||
moritz_ | frettled: ie by not fixing an order, we leave the implementations free to use a random order | ||
Matt-W | frettled: the ordering of a hash is of no concern to the people using it - as far as they are concerned, it's unordered, because the ordering could be anything at all | ||
masak is reminded of the programming language 'Sorted!' | |||
Matt-W | if you make no promises about the ordering, you can do what you like with it | ||
moritz_ | frettled: note that pugs preserves (to a certain degree) insertion order, which was perfectly valid - just confusing, because you couldn't rely on it | ||
frettled | moritz_: not xABrandomxBB, but xABarbitraryxBB :) | 14:04 | |
masak | someone should make a Sorted! implementation for Parrot: p-nand-q.com/humor/programming_lang...orted.html | ||
Matt-W | frettled: arbitrary is all you can rely on, random would be something different | ||
frettled | moritz_: it also appears that rakudo preserves insertion order. | ||
Matt-W: quite. | |||
moritz_ | frettled: it does not. | ||
rakudo: my %h; for 'a'..'z' { %h{$_} = 1 }; say %h.keys | 14:05 | ||
p6eval | rakudo 39cc84: OUTPUT«abcdefghijklmnopqrstuvwxyz» | ||
moritz_ | woops | ||
frettled | :) | ||
masak | "Each Sorted! program is, in fact, sorted, albeit randomly. Hence the name!" | 14:06 | |
Matt-W | it doesn't matter if rakudo does or doesn't | ||
there are no promises, other than the stability of iteration order when the hash isn't changed | |||
frettled | moritz_: This question came up as a result of an example I blogged about, where I zip monthnames and days-in-month. The order is always the same. | ||
Matt-W: yes, that's the only promise. | 14:07 | ||
But it is good form to say so in a spec. I'll make a mental note to patch that part of the synopsis, so that it's clear for any arbitrary reader. | |||
14:07
azawawi left
|
|||
masak | .oO( the readers of the spec also come in arbitrary order ) |
14:10 | |
moritz_ | rakudo: my %h; for "a".."z" { %h{rand} = $_ }; say %h.values | 14:11 | |
p6eval | rakudo 39cc84: OUTPUT«dlfcuxpyesqovwzanmtbhgrijk» | ||
moritz_ | frettled: that's not insertion order. | ||
it seems they are somehow sorted, but not in insertion order | 14:12 | ||
frettled | moritz_: well, "a".."z" is a lazy list, so you generate the list of keys simultaneously. The order of the list is given from element 0 to 25, which is "a".."z", and that initializes the hash. | 14:13 | |
moritz_: it's just like my month name example, which uses @months = <Jan Feb Mar ... Dec>; and then %days = @months Z 31,28,31, ... 31; | 14:14 | ||
moritz_ | frettled: did you see my second example, where the output was dlfcuxpyesqovwzanmtbhgrijk? | ||
frettled | rakudo: my %h; for "a".."m" { %h{$_} = 1 }; for "n".."z" { %h{$_} = 1 }; say %h.keys; | 14:15 | |
p6eval | rakudo 39cc84: OUTPUT«defghijklmnopqrstuvwxyzabc» | ||
14:15
takadonet joined
|
|||
moritz_ | frettled: anyway, I don't know what your point is. The spec allows arbitrary order, and rakudo implements at least that. | 14:15 | |
takadonet | morning all | ||
moritz_ | frettled: relying on anything more is an error. | ||
frettled | moritz_: First off, it was a question, not a _point_. | 14:16 | |
moritz_ | ok. | ||
frettled: did we answer your question, then? | |||
frettled | But then I _have_ followed up by making the point that the spec _should_ say that one shouldn't rely on underlying assumptions. | ||
moritz_: not really, only implicitly admitting that the spec doesn't say so. | |||
moritz_ | ok | ||
frettled: I agree it's a useful addition - feel free to add it | 14:17 | ||
(and please excuse me if I wasn't polite) | |||
frettled | E.g., the spec should say something like xABthe order of hash keys is implementation dependent and may be arbitraryxBB | ||
moritz_: no problem at all, sometimes we have to bang our heads together a bit more roughly to make sure we misunderstand eachother correctly :) | |||
moritz_ | (I was distracted at the same time, having network problems here with 30% packet loss) | ||
frettled | moritz_: and yes, I will try to patch that synopsis, just after I've added myself to AUTHORS. Should be RSN. :D | 14:18 | |
frettled gotta run home, roleplaying time, take care, and thanks for the good discussion! | |||
14:19
KyleHa joined
|
|||
KyleHa | Gooooood morning #perl6!! | 14:19 | |
moritz_ | oh hai KyleHa | ||
frettled: have fun :-) | |||
takadonet | morning KyleHa | ||
masak | morning, KyleHa++ | 14:20 | |
14:21
__ash__ joined
|
|||
KyleHa | moritz: How much time did you spend on the release you did last month? I'm contemplating volunteering for this month's, but I don't want to overcommit. | 14:23 | |
moritz_ | KyleHa: perhaps two hours, not counting 3x 30min when I waited for a spectest run to finish | 14:24 | |
KyleHa | That's not bad. | ||
moritz_ | and that includes the time I spent going through ChangeLog and writing parts of the announcement | 14:25 | |
pmichaud | Good morning, #perl6 | ||
moritz_ | oh hai pmichaud | ||
is it ins2 merge day? :-) | 14:26 | ||
takadonet | morning pmichaud | ||
alester | Is "Rakudo Star" the definite name? | ||
masak | alester: for now. :) | ||
Matt-W | o/ pmichaud | ||
masak | oh hai pmichaud | ||
Matt-W | alester: there's no such thing as definite until it's released :P | ||
alester | Loking for what pmichaud says. | ||
masak | it's written in sandstone. | ||
moritz_ | and even then we can monkeypatch it :-) | 14:27 | |
masak | .oO( Rakudo MonkeyPatch ) |
||
takadonet | Anyone have good examples of using grammar to parse a file? | 14:28 | |
14:28
szabgab left
|
|||
masak | takadonet: github.com/masak/html-template/tree/master | 14:29 | |
pmichaud | alester: "Rakudo Star" is a working name. | ||
takadonet | Masak: thanks | ||
masak | takadonet: it doesn't use actions; it takes things out of $/ after matching. | 14:30 | |
takadonet | masak: I been having lots of trouble using actions lately | ||
masak | takadonet: 'trouble', as in reportable bugs? | 14:31 | |
14:31
hcchien left,
clkao left
|
|||
cognominal | I read Rakudo Star as a rule that matches all the upcoming official releases of Rakudo | 14:31 | |
takadonet | masak: Not sure, Trying to determine if it's just a bug or just my limited knowledge of the language | ||
cognominal | we just have to make it Rakudo Plus | 14:32 | |
masak | takadonet: anything you want to share, a number of pastebins are waiting for you... | ||
takadonet | masak: Current are work right now so not possible | 14:33 | |
masak | understood. | ||
14:35
rfordinal left
|
|||
takadonet | Quick question: What are the differences between: regex,tokens and rules . I know that regex are just a name 'regular expression' but the rest I'm little fuzzy on | 14:35 | |
14:35
rfordinal joined
|
|||
pmichaud | a token is a regex that has backtracking turned off by default | 14:35 | |
a rule is a token where significant whitespace in the pattern corresponds to "optional" whitespace in the string being matched | 14:36 | ||
s/significant// | 14:38 | ||
takadonet | thanks pmichaud | 14:39 | |
14:39
nihiliad joined
|
|||
moritz_ | we should make an FAQ with an URL that's very easy to remember | 14:39 | |
(for the token/rule/regex thing) | |||
14:41
leedo joined
14:42
sparc left
|
|||
masak | moritz_: good idea. | 14:46 | |
moritz_: maybe with some example code which uses the differences in a useful situation. | |||
14:47
xomas_ left,
clkao joined
14:49
Psyche^ joined
|
|||
moritz_ | I could offer perl6.de/rtr # for "regex/token/rule" | 14:50 | |
takadonet | that would be great! | ||
pmichaud | we can always do rakudo.org/rtr | 14:51 | |
moritz_ | who owns perl6.org? | ||
that would be ideal | |||
whois says "Daniel Wright" | |||
pmichaud | maybe I'll inquire about perl6.org | 14:52 | |
moritz_ | that would be a very useful domain | 14:53 | |
pmichaud | agreed | ||
moritz_ | or perl6.com for that matter | 14:54 | |
(although I prefer .org) | |||
14:54
rfordinal left
14:58
ilango joined
|
|||
ilango | Hi, I would like to join in on the Perl 6 project | 14:59 | |
I am a Java developer with java and C++ skills, and very little perl development skills from 2002 | |||
And I would like to get involved with the Perl 6 project | 15:00 | ||
[particle] | the first step is admitting you are a perl 6 programmer | ||
phenny | [particle]: 10:49Z <masak> tell [particle] that I'm interested in hearing about the status of S19 implementation in Rakudo. it is something that I wouldn't mind seeing land before April. The new revised ROADMAP puts it at 2, "ought to have" -- I agree. | ||
pmichaud | ilango: great! Best place to start would be to write some Perl 6 programs. | ||
15:01
frew__ left
|
|||
ilango | Can I install Perl 6 on a Mac | 15:02 | |
masak | ilango: something like this, perhaps? (1) download Rakudo, (2) write "hello world", (3) write your cool new app. | ||
ilango: yes, you can. | |||
moritz_ | ilango: rakudo.org/how-to-get-rakudo | ||
ilango | thanks for your help | ||
masak | ilango: I'm running Rakudo, and I have a Macintosh. | ||
15:02
KyleHa1 joined,
frew joined,
KyleHa left
|
|||
sbp | it even works on Tiger | 15:02 | |
[particle] | pmichaud: the roadmap says last updated 2009-05-21 | 15:03 | |
ilango | I plan to run perl programs on a dedicated server and host a simple "Hello World " page running on Perl 6..What are your thoughts about that | ||
great! | |||
I have Mac OS Leopard | 15:04 | ||
Thank you moritx, masak and pmichaud | |||
masak | ilango: you're welcome, and good luck! let us know how it goes! | ||
15:04
Patterner left,
Psyche^ is now known as Patterner
|
|||
masak | ilango: oh, and if you have web hosting plans, I suggest you start looking at how the November-wiki project does CGI. | 15:05 | |
15:06
iblechbot left
|
|||
ilango | ok | 15:06 | |
pmichaud | rakudo: my $x = bar => [ baz => 42, sloth => 43 ]; my $y = :bar[ baz => 42, sloth => 43]; say .kv.perl for $x, $y | 15:07 | |
p6eval | rakudo 39cc84: OUTPUT«["bar", ["baz" => 42, "sloth" => 43]]["bar", "baz" => 42, "sloth" => 43]» | ||
pmichaud | rakudo: my $x = bar => [ baz => 42, sloth => 43 ]; my $y = :bar([ baz => 42, sloth => 43]); say .kv.perl for $x, $y | ||
p6eval | rakudo 39cc84: OUTPUT«["bar", ["baz" => 42, "sloth" => 43]]["bar", ["baz" => 42, "sloth" => 43]]» | ||
pmichaud | right. | ||
moritz_ | the tests in S32-array/kv.t simply tests kv.elems | 15:08 | |
pmichaud | the problem isn't .kv, it's the pair constructor. | ||
masak | pmichaud: SVG.pm currently blocks (a little) on that bug. | ||
moritz_ | (why is it in S32-array anyway? it should be in S32-list or so) | ||
pmichaud | masak: use parens around the list. | ||
moritz_ | pmichaud: I know, but that's where some (indirect) tests are | 15:09 | |
pmichaud | this is the bug I worked on (unsuccessfully) over the weekend | ||
ilango | Thank you, particle | 15:10 | |
pmichaud | STD.pm refactored quite a bit and it's going to take some work to get Rakudo to track those changes | ||
the workaround is to use :foo([3,4]) instead of :foo[3,4] for now. | 15:13 | ||
masak | pmichaud: thanks. | ||
pmichaud | (tickets merged and updated) | 15:14 | |
__ash__ | just curious, parrot defines everything in a spec before it implements it right? so if there seems to be something missing from their spec it would be wise to say send an email in the mailing list about it | 15:16 | |
pmichaud | __ash__: no, parrot does not always define in a spec before implementing | 15:17 | |
but yes, if something is missing in the spec it's worth an email | |||
__ash__ | btw, rt.perl.org/rt3/Public/Bug/Display.html?id=65272 and rt.perl.org/rt3/Public/Bug/Display.html?id=46665 seem to be related issues, both seem to come from a parrot issue, just thought i'd let you guys know i noticed this, i am going to ask in the parrot mailing list about it | 15:19 | |
15:20
donaldh left
15:21
donaldh joined
|
|||
masak | pmichaud: did you mean like this:? | 15:21 | |
rakudo: say (:a(:b, :c)).perl | |||
p6eval | rakudo 39cc84: OUTPUT«too many named arguments - 'b' not expectedin Main (/tmp/BarmebCDoj:2)» | ||
15:23
adhoc_ joined
|
|||
pmichaud | masak: I simply mean that :a[...] doesn't work properly at present. | 15:23 | |
rakudo: say (:a((:b, :c))).perl | |||
p6eval | rakudo 39cc84: OUTPUT«"a" => ["b" => 1, "c" => 1]» | ||
masak | ah. double parens. | ||
pmichaud | currently Rakudo is using postcircumfix for whatever comes after the :name part | ||
so :a(...) parses like a function call | 15:24 | ||
masak | tha's wrong. | ||
pmichaud | right | ||
but that was the way STD.pm did it until a month ago | |||
[particle] | time-- | ||
masak | surprising. | ||
I'm glad it doesn't any more. | 15:25 | ||
pmichaud | same here | ||
unfortunately, fixing it is not as simple as s/postcircumfix/circumfix/ | |||
because the code for creating compile-time pairs depended on the structure of a postcircumfix ast | |||
15:26
finanalyst left
|
|||
pmichaud | (because the postcircumfix ast looks like a function call, while a circumfix ast would look like a list) | 15:26 | |
so I have to switch that code. But switching that code means that the code that checks for named arguments also has to change... | |||
and it just spreads from there | 15:27 | ||
masak | I see. | 15:28 | |
yesterday I tried eating my own dogfood and running SVG.pm, and I ran into this bug. | 15:29 | ||
moritz_ | so it uses a too low level representation of the parse tree? | ||
pmichaud | moritz_: it gets at the very fundamentals of distinguishing lists, argument lists, and named arguments | ||
masak | I wish I knew how to do that. :P | 15:30 | |
pmichaud | and STD.pm has refactored argument list / colonpair handling several times in 2009 | ||
so it's a bit challenging for rakudo to keep up | |||
masak | seems I have very marked difficulties in telling what is a named param and what is a pair. | 15:31 | |
pmichaud | even if we were using STD.pm directly it'd be a challenge, because the issue isn't one of parsing but of correctly analyzing the parse to produce the correct semantics | ||
so when the parse changes, the analyzer has to change also | 15:32 | ||
masak | nod. | ||
moritz_ wonders how hard or easy it is for pmurias to extract such information from STD.pm | 15:33 | ||
pmichaud | anyway, I thought it would be a relatively simple fix on friday but by sunday I had decided it wasn't quite-so-simple | ||
15:35
adhoc left
|
|||
pmichaud | (it's not hard, it just requires a re-examination of everywhere that we do argument handling and list construction) | 15:35 | |
masak | uhn, looking at #66996, it seems that the bug has been independently discovered three times... what's more worrying, at least to me, is that the requestor was me all three times. :/ | 15:41 | |
pmichaud | heh | ||
masak | my garbage collection seems to be working really well. | ||
pmichaud | well, in the last instance it was originally thought to be a .kv bug and not a colonpair bug | ||
masak | mm. | 15:42 | |
in my defense, I don't seem to discover this bug more often than once a month. :P | |||
pmichaud | in your defense, we don't seem to fix this bug more often than once a year. | 15:43 | |
masak | *lol* | ||
moritz_ | :-) | ||
but now we seem to have tests in two different files | |||
so you made KyleHa++ and me work on the tests | |||
masak | hm, interesting that you arrived at two different places for the tests... | 15:44 | |
I don't feel entirely culpable for that, actually... :) | 15:45 | ||
pugs_svn | r27947 | kyle++ | [t/spec] typo | 15:50 | |
r27948 | kyle++ | [t/spec] Test for RT #68370 | |||
KyleHa1 | My method for locating new tests is (1) find the longest \W+ string in the new test code, (2) grep for that in the existing tests, (3) place the new tests in whichever file has the most instances of that punctuation. | 15:52 | |
*smirk* | 15:53 | ||
15:53
nperez left
15:54
nperez joined
15:55
takadonet left
16:00
colomon joined,
colomon_ joined,
colomon left
16:03
rfordinal joined
|
|||
Guest52299 looking at #perl6 | 16:03 | ||
16:04
pmurias left,
xinming left,
frettled left,
he_ left,
lucs left,
c1sung_ left,
estrabd left,
integral left
16:05
Guest52299 left,
Guest52299 joined
16:07
carlin left
16:08
frettled joined
16:09
pmurias joined,
lucs joined,
xinming joined
16:11
he_ joined,
c1sung_ joined,
integral joined,
c1sung_ left
16:16
c1sung joined,
nperez left,
masak left,
jkva left,
maja_ left,
hanekomu left,
lambdabot left,
Trey left,
antiphase left,
Helios left,
Infinoid left
16:17
Infinoid joined,
nperez joined,
masak joined,
jkva joined,
maja_ joined,
hanekomu joined,
lambdabot joined,
Trey joined,
antiphase joined,
Helios joined,
irc.freenode.net sets mode: +o Infinoid
16:21
M_o_C left
16:26
cdarroch joined
16:28
dragon67_ left,
Guest52299 is now known as mike,
mike is now known as mzedeler
16:29
mzedeler left,
mzedeler joined
|
|||
mzedeler | Hi | 16:29 | |
masak | mzedeler: hello! | ||
16:29
M_o_C joined
|
|||
mzedeler | Thanks for a nice YAPC::Europe | 16:29 | |
masak | likewise. | 16:30 | |
mzedeler | Now I have perl6 installed and IRC running, so I'm set up to start exploring perl 6. | ||
masak | \o/ | 16:31 | |
16:33
zamolxes left
|
|||
mzedeler | It seems very quiet here in the #perl6 channel. | 16:33 | |
colomon_ | I think a lot of people may still be traveling from YAPC Lisbon. | 16:34 | |
mzedeler | Sure. I have a lot of ground to cover, so I'll probably be on and off in the time to come. | 16:35 | |
16:36
szabgab joined
16:38
lionWrk is now known as LionMadeOfLions
|
|||
masak | mzedeler: I think you'll find asking questions here very rewarding. I know I do, and I ask questions all the time. :) | 16:38 | |
16:38
whoisthatgoksie joined
|
|||
masak | but right now, I'm off to meet up with a Japanese esperantist. see y'all around. \o | 16:39 | |
16:39
masak left,
whoisthatgoksie_ joined
|
|||
PerlJam | What's the cube root of 39304? | 16:39 | |
mzedeler | Its smaller than 39304. | 16:40 | |
PerlJam | I didn't find asking that question particularly rewarding :) | ||
moritz_ | rakudo: say 39304 ** (1/3) | ||
p6eval | rakudo 39cc84: OUTPUT«34» | ||
PerlJam | mzedeler: but, yeah, what masak said. Ask some questions and see what happens. | ||
moritz++ | |||
colomon_ | "There's no such thing as stupid questions, only stupid people with questions." -- South Park ;) | 16:41 | |
mzedeler | masak: bye for now. | ||
I'm off for food. | |||
16:41
mzedeler left
16:44
goksie joined,
szabgab left
16:45
ilango left
16:47
ZuLuuuuuu joined,
whoisthatgoksie left
16:48
whoisthatgoksie_ left
|
|||
pugs_svn | r27949 | kyle++ | [t/spec] Test for RT #68358 | 16:50 | |
16:51
hercynium joined
|
|||
KyleHa1 | That one disturbs my delicate Perl 5 sensibilities. | 16:51 | |
I'd be pleased as punch if someone could verify that it's right. | 16:52 | ||
(Specifically, is it true that "my ($x)" with a space is different from "my($x)" without a space?) | |||
moritz_ | KyleHa1: yes | ||
PerlJam | yes | ||
moritz_ | if STD.pm parses it, it's likely right | 16:53 | |
PerlJam | KyleHa1: foo() is always different from foo () | ||
KyleHa1 | OK, thanks. | ||
In that case, I'm happy with my test. | 16:54 | ||
moritz_ | hrm, std.pm doesn't seem to like sub() | ||
it should. | |||
16:54
szabgab joined
|
|||
moritz_ | otoh doesn't the case of 'sub' collision with anonymous subroutine declarations? | 16:54 | |
TimToady | yes, but I'm beginning to think we should make that one consistent as well, and require sub () | 16:55 | |
16:56
takadonet joined
|
|||
TimToady | or sub*() works, I think | 16:56 | |
16:56
eMaX left
|
|||
TimToady | where "works" is defined as "specced to work" | 16:56 | |
std: sub*() {} | 16:57 | ||
moritz_ | I think requiring a space is sane | ||
PerlJam | I was just about to agree but then I see some strange syntax ... what's "sub*()" ? | ||
p6eval | std 27948: OUTPUT«===SORRY!===Malformed block at /tmp/bRRsiExfAq line 1:------> sub⏏*() {} expecting any of: block name routine_def terminator trait whitespaceFAILED 00:02 37m» | ||
TimToady | hm | ||
std: sub *() {} | |||
p6eval | std 27948: OUTPUT«===SORRY!===Malformed block at /tmp/V9oGuZEKXt line 1:------> sub ⏏*() {} expecting any of: block name routine_def terminator traitFAILED 00:02 36m» | ||
TimToady | std: class * is Int {} | ||
p6eval | std 27949: OUTPUT«===SORRY!===Unable to parse class definition at /tmp/A8mZQ2dVgq line 1:------> class ⏏* is Int {} expecting any of: name traitFAILED 00:02 36m» | ||
TimToady | I guess it's NYI in std | 16:58 | |
moritz_ | what should it mean? | ||
TimToady | supposed to mean "anonymous" | ||
but explicitly, instead of leaving the name out | |||
moritz_ | is that in the spec somewhere, or just in your head? | 16:59 | |
TimToady | I think it's specced, but that thought might be just in my head :) | ||
oh, wait | 17:01 | ||
maybe it was class :: {} | |||
PerlJam | no whatevers for classes | 17:02 | |
TimToady | yes, I was confabulating | 17:03 | |
TimToady blames jetlag | |||
std: sub :: () {} | 17:04 | ||
p6eval | std 27949: OUTPUT«ok 00:02 38m» | ||
TimToady | std: sub::() {} | ||
p6eval | std 27949: OUTPUT«===SORRY!===Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/l8ImfTI5kM line 1:------> sub::() ⏏{} expecting any of: bracketed infix infix stopper standard stopper | ||
..terminatorUnd… | |||
TimToady | so that won't work on subs anyway | ||
not without a space anyway | |||
17:08
goksie left
|
|||
moritz_ | std: class :: is rw { } | 17:12 | |
p6eval | std 27949: OUTPUT«ok 00:02 36m» | ||
17:13
szabgab left
|
|||
PerlJam | news.perlfoundation.org/2009/08/200...nging.html could prove quite useful for the Perl 6 world. | 17:13 | |
moritz_ | aye; I was about to comment on that (and ask if he could make a Perl theme + Perl 5 and 6 subthemes) | 17:15 | |
17:20
kcwu left,
kcwu joined
17:21
kane_ joined
|
|||
moritz_ | PerlJam: anyway, so far I haven't got around to write a reply, feel free to do it yourself too (more voices can't hurt) | 17:28 | |
17:28
adhoc joined
17:42
adhoc_ left
17:46
araujo joined
17:49
japhb left
17:51
pmurias_ joined
|
|||
pmurias_ | ruoso: hi | 17:52 | |
ruoso | hi pmurias_ | ||
pmurias_ broke his laptops hard drive at yapc::eu and is now using a ubuntu virtual machine | 17:53 | ||
ruoso | ouch | ||
good thing there is SVN | |||
pmurias_ | ruoso: so what do we need to figure out to do module loading? | 17:54 | |
ruoso | we need TimToady's final call on S11... | 17:55 | |
pmurias_ | what is the install alias from S11 supposed to do? | 17:56 | |
ruoso | pmurias_, it's basically a BIND | ||
but it can create new entries (which is only allowed at compile time) | 17:57 | ||
17:57
pmurias_ is now known as pmurais
|
|||
pmurais | ruoso: and .copy creates a deep copy? | 17:58 | |
ruoso | pmurais, yes... but it only clone packages | ||
the other entries in the package are not cloned | |||
ruoso wonder if pmurias noticed the typo in pmurais | |||
moritz_ | there's one thing I don't like about the current S11 state | 17:59 | |
cxreg | is the comment syntax still open for discussion? tye had some complaints about it that I thought I would relay | ||
pmurais | ruoso: i noticed it once you mentioned it ;) | ||
moritz_ | the presence of a stub shouldn't require import_realias instead of import_alias | ||
[particle] | everything is open for discussion here, cxreg | ||
moritz_ | just like the presence of a stubbed class shouldn't require an 'augment' before the defintion of the "real" class | 18:00 | |
lisppaste3 | cxreg pasted "p6 comment syntax" at paste.lisp.org/display/85140 | ||
ruoso | moritz_, I'm not sure I get what you mean | ||
moritz_ | ruoso: S11 mentions .import_realias and .import_alias | 18:01 | |
ruoso: and the former seems necessary if the stub is already present | |||
ruoso: right? | |||
ruoso | moritz_, no... | ||
actually... yes | |||
hmm... | |||
moritz_ | which one? :) | ||
ruoso | I initially thought .import_alias was more generic | 18:02 | |
moritz_ | I'm looking at S11:268 | ||
ruoso | and .import_realias was more specific | ||
but they are mutually exclusive | |||
18:02
braceta joined
|
|||
ruoso | moritz_, yeah... it seems that a more generic method would be needed | 18:03 | |
i.e. .import_alias, .import_newalias, .import_realias | |||
moritz_ | .import($symbols, :override) | ||
ruoso | or that | ||
moritz_, but the idea seems to be to force you to know what you're doing | |||
but I'm not sure there is a way for you to know it | 18:04 | ||
moritz_ | ruoso: that's not a bad idea, as long as it doesn't create wierd assymetries | ||
cxreg: I think you should send those comments to the mailing list, they are drowning here | 18:05 | ||
cxreg | do I have to subscribe to send to the list? :/ | 18:06 | |
pmurais | ruoso: i managed to get App::Persistent to work with mildew, but it only cuts ~1sec per test (the c compiler remains) | ||
moritz_ | cxreg: no; it'll just longer if not (manual moderation) | ||
cxreg | that's perl6-lang or something? | ||
moritz_ | [email@hidden.address] | ||
ruoso | pmurais, heh... that's pretty slow ;) | 18:07 | |
ah.. | 18:08 | ||
wait... | |||
it cuts, not increases | |||
:) | |||
18:08
zostay left
|
|||
ruoso | pmurais, we could drop that time if we went from mold AST to Mold directly using XS | 18:09 | |
that way we wouldn't require the C-compiling part at all | |||
pmurais | having a bytecode format would be good | 18:10 | |
ruoso | pmurais, having a bytecode format would require a bytecode processor | ||
moritz_ | ruoso: don't you have a tab key for nick completion? ;-) | ||
oh wait | 18:11 | ||
:) | |||
moritz_ owned | |||
ruoso | pmurais, and, actually, for the CORE, having it compiled down to yeast C code is better than bytecode | ||
18:11
pmurias left,
pmurais is now known as pmurias,
pmurias_ joined
|
|||
ruoso | which makes me realize I was talking non-sense | 18:12 | |
pmurias | ruoso: so do you think working on cutting the compiling overhead makes sense | 18:13 | |
? | |||
ruoso | pmurias, but I still think that having the constant values used directly in the yeast code instead of being sent around during initialization would also increase boot time | ||
s/increase/improve? | |||
pmurias, not if we're moving towards yeast... at least not now | |||
pmurias | so any task for me? (i'm not really sure wha should be in ClassHOW) so i don't really know how to work on that | 18:16 | |
ruoso | pmurias, the current ClassHOW isn't much far from the final one... | 18:18 | |
so supporting the features there is certainly a good thing | |||
KyleHa1 | rakudo: say $~MAIN; | 18:19 | |
pmurias | do we need ::() or is MY::<...> enough? | ||
p6eval | rakudo 39cc84: OUTPUT«say requires an argument at line 2, near " $~MAIN;"in Main (src/gen_setting.pm:2473)» | ||
ruoso | pmurias, you mean for the ::($*CLASS) in ClassHOW.pm? | 18:20 | |
moritz_ | KyleHa1: I don't think we have any tests for language braids yet | ||
for slangs, yes | 18:21 | ||
18:21
mikehh__ joined
|
|||
pmurias | ::($repr) | 18:21 | |
KyleHa1 | moritz: I noticed that. I was thinking of writing some, but I haven't understood them yet. | ||
moritz_ | KyleHa1: same here ;-) | ||
pmurias | ruoso: line 26 | ||
KyleHa1 | About all I could say at this point is 'ok defined $~MAIN' | ||
moritz_ | KyleHa1: I think it's not ripe for testing yet; let's wait a bit with TimToady does with STD.pm here | 18:22 | |
KyleHa1 | Yeah... | ||
moritz_ | afaict it's meant like this: | ||
KyleHa1 | I sometimes wonder if writing bad tests will spur better specs. | ||
moritz_ | you override the quoting syntax with "" in $~MAIN | 18:23 | |
and then you write a regex that uses that modified quoting syntax | |||
inside | |||
PerlJam | The more people that attempt to use it, the better TimToady will be able to spec it :) | ||
ruoso | pmurias, in that case MY::{$repr} should suffice | ||
moritz_ | ah well; I don't want to discourage anybody | 18:24 | |
18:24
mikehh__ is now known as mikehh,
kane_ left
|
|||
KyleHa1 | So then $~Q is the 'name' of the new quoting syntax when you're inside the regex that uses it? | 18:24 | |
moritz_ | I just want to say that it's likely to be not very rewarding at first | ||
KyleHa1: probably some kind of a grammar or a compiler object or so | 18:25 | ||
KyleHa1 | Oh, all those things will be objects. | ||
moritz_ | I'd be disappointed if not :-) | 18:26 | |
ruoso | pmurias, but if you want a more challenging task ;) | 18:27 | |
KyleHa1 | rakudo: say $~MAIN.perl; # nyuck nyuck nyuck | ||
p6eval | rakudo 39cc84: OUTPUT«say requires an argument at line 2, near " $~MAIN.pe"in Main (src/gen_setting.pm:2473)» | ||
ruoso | pmurias, having contextual variables is also a ClassHOW requirement | ||
and a much more fun task ;) | |||
18:29
ZuLuuuuuu left
18:34
mikehh_ left
|
|||
pmurias | ubuntu told be to install the wrong ask :( | 18:39 | |
* ack | |||
alester | you want ack-grep, alas. | ||
pmurias | shouldn't it show me the choice instead of telling which package i should install? | 18:40 | |
18:40
Jedai joined
|
|||
PerlJam | alester: are you familiar with the Business of Software conference? | 18:41 | |
alester | I am not, no | ||
moritz_ | rakudo: runinstead() | 18:42 | |
p6eval | rakudo 39cc84: OUTPUT«Could not find non-existent sub runinstead» | ||
moritz_ | oh, did I forget to push my NYI-implementation? | ||
PerlJam | alester: www.businessofsoftware.org/ you might find it interesting | ||
pmurias | ubuntu renamed ack ack-grep? how dare they | 18:43 | |
dalek | kudo: bb1c2be | moritz++ | (2 files): initial NYI.pm implementation into a lexical sub or a lexical variable holding a block were not successful - there former aren't found (see RT #67868), the latter produce Null PMC access in invoke() |
||
moritz_ | debian did, I guess | ||
18:44
kane_ joined
|
|||
pmurias | easily fixed with a symlink ;) | 18:44 | |
KyleHa1 | NYI.pm has a 'multi want', but I thought 'want' was officially voted off the island. | 18:47 | |
moritz_ | ouch | ||
and it was me removing it | 18:48 | ||
where did I have my senses this morning? | |||
any other NYI builtins I could list? | |||
KyleHa1 | There are probably lots of operators. | ||
moritz_ | the feed operator... but I think they require special parsing | 18:49 | |
let's see how STD.pm does it | |||
PerlJam | what's "runinstead"? | 18:50 | |
18:50
nicomen joined
|
|||
moritz_ | exec() | 18:50 | |
PerlJam | and the name change because ... ? | ||
moritz_ | because exec is not descriptive | 18:51 | |
and because system() is now run() | 18:52 | ||
TimToady | and because exec needed dehuffmanization and deunixization | 18:53 | |
dalek | kudo: 1e00038 | moritz++ | src/setting/NYI.pm: want() is not NYI, it's gone - KyleHa++ |
18:55 | |
PerlJam | okay, I'll just chalk up the weird name to the price of change I guess. Though "runandreplace" or "runinplace" or something might be more descriptive. | ||
ruoso | TimToady, is exec possible to be deunixicized | 18:56 | |
? | |||
KyleHa1 | runwithscissors | ||
PerlJam | KyleHa1++ | ||
ruoso was thinking in POSIX::exec, SYSV::exec BSD::exec or whatever | |||
__ash__ | runinstead seems like odd english, did someone not native to english come up with that :P | 18:57 | |
PerlJam | so ... does that mean fork is going to get a new name too? :) | ||
ruoso | actually... it's just POSIX | ||
ruoso votes for POSIX::exec | |||
PerlJam | ruoso: yeah, putting the POSIXy things under the POSIX namespace makes good sense. | 18:58 | |
ruoso | and POSIX package will always be loaded under POSIX OSs | 18:59 | |
so no need to use POSIX | |||
moritz_ | ruoso: NOOO | ||
ruoso | (unless you want to import the symbols) | ||
moritz_ | no automatic package loading | ||
that's too scary in perl 6 | |||
because it change the parser | |||
you don't want to get a parse error on a different OS | 19:00 | ||
ruoso | moritz_, POSIX being part of the Setting of Perl in a POSIX OS seems natural to me... | ||
TimToady | I hope POSIX dies a violent death soon | ||
ruoso | rakudo: say POSIX::exec | 19:01 | |
moritz_ | ruoso: getting OS dependent syntax errors doesn't seem natural to me | ||
p6eval | rakudo bb1c2b: OUTPUT«Null PMC access in invoke()in Main (/tmp/ynfpi8YT4I:2)» | ||
KyleHa1 | is ( 'filename' ~~ :e ) an error now? | ||
ruoso | TimToady, POSIX is a standard... or do you refer to the perl5 POSIX.pm? | ||
TimToady | I am referring to the standard :) | ||
ruoso | moritz_, but I'm not against requiring "needs POSIX" | ||
TimToady, in that case... I kinda doubt it will die ;) | 19:02 | ||
moritz_ | KyleHa1: yes | ||
PerlJam | POSIX will die just like COBOL died. | ||
moritz_ | KyleHa1: it calls method .e on Str which doesn'T exist | ||
KyleHa1 | That's testable. 8-) | 19:03 | |
moritz_ | aye ;-) | ||
KyleHa1: btw I'm trying to patch ==> and other feed operators into the grammar and NYI.pm ;-) | 19:04 | ||
ruoso | in fact... "need POSIX"; sounds very much reasonable thing to have in a POSIX-specifc script | ||
KyleHa1 | moritz: I look forward to seeing that. | 19:05 | |
__ash__ | windows isn't posix compliant by default, but its not hard to make it posix compliant, however, doesn't it have its own version of exec/fork/etc. ? (i haven't had a windows compy in like 4 years and haven't ever tried doing concurrency on it) | 19:06 | |
pmichaud | moritz_: for making ==> into NYI, just write its sub | ||
moritz_ | __ash__: afaict it doesn't have fork (don't know about exec), windows has a different API for launching processes | ||
19:07
mberends left
|
|||
pmichaud | sub infix:«==>» { die "nyi"; } | 19:07 | |
moritz_ | pmichaud: I want to make sure that it gets the right precdence | ||
pmichaud | just add it into the precedence table | ||
moritz_ | pmichaud: which i why I also want to add it to grammar-oper.pg | ||
pmichaud | same as other ops | ||
moritz_ | yes, I'm testing that right now | ||
pmichaud | okay, moritz++ | ||
moritz_ | spectest seems fine so far | ||
pmichaud | should be, yes. | ||
the only operators that have trouble are those that we currently have to define in PIR | |||
(because of multimethod issues) | |||
moritz_ | doen't parse '@a ==> @b' after I add it the op table | 19:09 | |
I added a new precedence level - could that be a problem? | |||
'b=' instead of 'c=' | |||
pmurias | TimToady: what's wrong with POSIX? | ||
TimToady | abysmally ignorant of Unicode, for one | 19:10 | |
locales are a travesty | |||
the event model is not easily portable to other event systems | |||
select only does filehandles | 19:11 | ||
that's for starters | |||
PerlJam | somehow, perl needs to hire this guy: www.kranzcom.com/who-is-jonathan/10...-jonathan/ | ||
ruoso | TimToady, I agree it's not the prettiest thing in the world... but it's a standard, it's old, it's legacy... it can't be pretty | 19:12 | |
TimToady | and everything is done with null-terminated strings, grr | ||
well, not everything | |||
but too much | |||
I'm fine with having a POSIX module, but keep its semantics out of core Perl 6, please | 19:13 | ||
PerlJam | TimToady: So ... POSIX is meeting their goals. Why does it need to die? | ||
TimToady | we hates it | ||
19:13
japhb joined
|
|||
KyleHa1 | POSIX kicked my dog. | 19:13 | |
ruoso | TimToady, my point is that every attempt I am aware to mask out the OS concepts end with a even weirder API (i.e.: Java) | 19:14 | |
so... better keep a POSIX:: namespace | |||
for POSIX:: things | |||
TimToady | I'm not arguing against that; I'd still like for the standard to die someday :) | ||
ruoso | heh... | 19:15 | |
TimToady | a prerequisite will be someone coming up with a different standard, as you suggest | ||
19:15
Tene left
|
|||
PerlJam | TimToady: the Portable Perl 6 Environment? :) | 19:16 | |
19:16
Tene joined
|
|||
pmichaud | new precedence level shouldn't be a problem | 19:17 | |
moritz_ | pmichaud: I'll send a patch + description to p6c, maybe you'll find some time to look over it then | ||
but first I want to play a bit with it ;-) | |||
KyleHa1 | Moritz: I've modified S16-filehandles/filetest.t according to the new spec, and Rakudo blows up on it at the first test. Should I remove it from spectest.data or fudge the whole thing or let it be a regression? | 19:18 | |
pmichaud | moritz_: sounds great, I'll definitely look. | ||
KyleHa1: comment out in spectest.data is the standard approach | |||
moritz_ | KyleHa1: remove it from spectest.data (and add a comment on the top that you regressed on it) | ||
(and why) | |||
pmichaud | (it's a regression, but at least we know that it once worked) | ||
KyleHa1 | OK, thank you both. | ||
19:20
donaldh left
|
|||
ruoso | TimToady, anyway... I think the current spec for Parcel doesn't hurt smop much... because the capture is still the fundament of every call... I just need a Parcel type and a Parcel->Capture typecast... | 19:20 | |
19:20
donaldh joined
|
|||
TimToady | unless, of course, we have a signature that wants the original Parcel...but I haven't got a use case for that yet | 19:21 | |
ruoso | can we leave that for 6.0.0 + 1 | 19:22 | |
? | |||
moritz_ | for something like list() which tries to turns named into positionals? | ||
KyleHa1 | Is there some reason dalek doesn't show that commit? | ||
TimToady | well, a use case will likely involve the implementation of something lowlevel like circumfix:<( )> though | ||
moritz_ | KyleHa1: it takes up to 5 minutes, or so | ||
TimToady | moritz_: yes, something like that | ||
KyleHa1 | Oh, I'm impatient. OK. 8-) | ||
19:23
mberends joined
|
|||
TimToady | though we could possibly restrit such to macro-ish parsing | 19:23 | |
*restrict | |||
and keep Parcels out of sigs that way | |||
alternately, keep the original parcel ordering somewhere in the Capture if the candidate list might want a Parcel | 19:24 | ||
ruoso trying to figure out how to implement list() without Parcels in the sig | |||
TimToady | easy to prove with multis, hard with methods | ||
so list() might be significantly easier than ().list | 19:25 | ||
dalek | kudo: 9c291ca | (Kyle Hasselbacher)++ | t/spectest.data: [spectest.data] filetest.t regressed due to spec change (RT #68160) |
||
TimToady | but lunch & shower & | ||
ruoso | TimToady, alright... if we allow a Parcel->Capture->Parcel cast to return a different object, it should work | 19:26 | |
which shouldn't be a problem, since Parcel is immutable | |||
moritz_ | why would you want to convert from Capture to Parcel? | ||
ruoso | in list() | 19:27 | |
that considering Capture is a fundament of every call | |||
as it is in SMOP | |||
moritz_ | well, when you have a Capture it's too late anyway | ||
which i the root of our list() problem | |||
*is | |||
ruoso | so you mean list() wouldn't convert named to positional? | 19:28 | |
or that it wouldn't preserve the order? | |||
pugs_svn | r27950 | kyle++ | [t/spec] change every $str ~~ $pair file test to $str.IO ~~ $pair | ||
r27951 | kyle++ | [t/spec] cut out some old noisy code in comments | |||
r27952 | kyle++ | [t/spec] Add a dies_ok test for the old style filetest | |||
moritz_ | @karma kyle | 19:29 | |
lambdabot | kyle has a karma of 219 | ||
moritz_ | ok, feed operators parse... | 19:32 | |
dalek | kudo: af3efaf | moritz++ | src/ (2 files): parse feed operators, and die with a NYI message enough of the parser, it seems. |
19:36 | |
KyleHa1 | As a Perl Monk, I wonder how 'karma' relates to 'XP'. | ||
moritz_ | every ++ increments karma | 19:37 | |
every -- decreases it | |||
no complicated average, quantiles and what-not | |||
KyleHa1 | It's a more straight forward mechanism. | ||
19:38
dduncan joined
19:39
dduncan left
19:40
braceta left
|
|||
pmurias | what does the statement starting at S02:2099 mean? | 19:41 | |
i don't understand how is the variable "controled" | 19:42 | ||
that is what does it mean that the variable is "controled" | 19:43 | ||
ruoso | pmurias, I think it means you can't re-bind it | 19:44 | |
19:45
jan_ left
|
|||
colomon_ | rakudo: say; | 19:49 | |
p6eval | rakudo af3efa: OUTPUT«say requires an argument at line 2, near ";"in Main (src/gen_setting.pm:2473)» | ||
moritz_ | rebuilding rakudo on p6eval's server... | 19:50 | |
colomon_ | I figured say with no arguments would just send a newline to std out. | 19:51 | |
moritz_ | S16 says something else | ||
because perl 5 programmers tend to get confused, and assume it will default to $_ | |||
colomon_ | ah. | 19:52 | |
that makes sense, I suppose. | |||
moritz_ | rakudo: 3 ==> 5 | 19:54 | |
p6eval | rakudo af3efa: OUTPUT«Feed operators are not yet implemented in Rakudo, sorryin sub infix:==> (src/gen_setting.pm:1417)called from Main (/tmp/OxfIyz5SGY:2)» | 19:55 | |
19:55
braceta joined,
tomaw- left
19:56
Tene left,
Tene joined
19:57
jan_ joined
19:59
molaf joined
|
|||
cj is constantly confused | 20:00 | ||
PerlJam | cj confusion is good. It means you may be learning something. | 20:02 | |
20:03
[Coke] joined
|
|||
[Coke] | www.nntp.perl.org/group/perl.wxperl...g6631.html (perl6 vs. parrot confusion that might need to be cleaned up.) | 20:03 | |
20:08
tomaw_ joined
20:09
zamolxes joined
|
|||
cj | PerlJam: whee. Looks like we'll have a Mono-based DLR in debian real soon now. you know anyone who wants to help diakopter and me get p6 on a .net-based vm? :) | 20:09 | |
diakopter: :) | 20:10 | ||
20:10
braceta left
|
|||
PerlJam | cj: I don't know anyone, but blog about it and talk about it here long enough and you'll drum up some interest | 20:11 | |
20:11
braceta joined
|
|||
pmurias | ruoso: is walking the call chain, checking if the variable in .lexical is a context one an acceptable way of implementing context variables? | 20:12 | |
ruoso | pmurias, I can't think of another way... | ||
pmurias | ruoso: i'm thinking of using bohem gc for smop | 20:15 | |
ruoso | bohem? | ||
moritz_ | boehm | ||
pmurias | yes | ||
en.wikipedia.org/wiki/Boehm_garbage_collector | 20:16 | ||
20:16
[Coke] left
|
|||
ruoso | pmurias, how would it interoperate with p5? | 20:17 | |
pmurias | if we were using proxy objects as we do now, when the proxy object is collected it would release the sv | 20:19 | |
ruoso | pmurias, please consider talking to #p5p to see if it would be possible to make a custom p5 that uses it... | ||
pmurias, since the proxy object is just a temporary measure | 20:20 | ||
20:25
zamolxes_ joined,
zamolxes_ left,
mzedeler joined
|
|||
pmurias | ruoso: i could always make a custom perl5 which uses bohem and check what happens ;) | 20:26 | |
ruoso | pmurias, well.. if you have the time ;) | ||
pmurias, you could also add an extra element on the SV* head | |||
and remove the proxy object entirely | |||
that's half of the work to have the P5-SMOP integration | 20:29 | ||
ok... probably a bit less than the half | |||
pmurias | ruoso: perl5 depends on deterministic destruction so using a tracing gc with it might break some things | 20:31 | |
ruoso | pmurias, the major purpose of SMOP today is providing full p5 integration in the future | 20:32 | |
i.e. making perl 5.12 support Perl 6 | |||
__ash__ | doesn't rakudo have use v5? | 20:33 | |
ruoso | so I really would like to avoid using things that would prevent that integration to happen... | ||
__ash__, not yet... I think... | |||
nor does it "use CGI:from<perl5>" | |||
cxreg | was ponie discarded as technically infeasable, or just for lack of a willing owner? | ||
jjore | IIRC, Bergman just ran out of time and interest. | 20:34 | |
ruoso | cxreg, some have told me that my plans on SMOP-P5 look a lot like ponie | ||
rakudo: use CGI:from<perl5>; say CGI.new().header(); | 20:35 | ||
p6eval | rakudo af3efa: OUTPUT«"load_language" couldn't find a compiler module for the language 'perl5'in Main (src/gen_setting.pm:3369)» | ||
20:35
athomason joined
|
|||
__ash__ | use Foo:lang<cardinal>; if i am not mistaken works (if you have cardinal), wonder if anyones going to do perl 5 in parrot | 20:36 | |
blogs.gurulabs.com/stephen/perl6/ has a blog post about getting cardinal (parrot ruby) and rakudo working together | 20:37 | ||
cxreg | I think it might be worthwhile to resurrect ponie | ||
ruoso | __ash__, thing is doing perl5 in parrot and not supporting XS is quite pointless | 20:38 | |
__ash__ | XS? | ||
ruoso | p5 XS | ||
eXtenSions | |||
__ash__ | ah, got ya | ||
ruoso | cxreg, www.perlfoundation.org/perl6/index.cgi?smopp5 | 20:39 | |
cxreg, that's my plan on how to get SMOP and P5 working together | |||
ruoso decommute & | 20:41 | ||
20:41
ruoso left
|
|||
cxreg | so wait, python has both pynie and pirate? | 20:41 | |
pirate looks deceased, though | 20:42 | ||
moritz_ | allison and a few others work on pynie | 20:43 | |
__ash__ | their repository hasn't been updated since 3 years ago pirate that is | ||
20:50
timbunce joined
20:57
szabgab joined
|
|||
moritz_ | cxreg: I think parrot was just not ready to support enough of Perl 5's features, back in the days of ponie | 21:02 | |
cxreg | that's certainly believable | ||
maybe we can forget ponie and just write a perl 5 compiler in straight perl 6 | 21:03 | ||
moritz_ coughs loudly | |||
look at toke.c | |||
look again | |||
shudder with fear | |||
cxreg | :) | ||
is that file a noun or a verb? | 21:04 | ||
moritz_ | "nightmare" is a noung | ||
cxreg | i thought it was instructional. "before reading, toke" | 21:05 | |
21:06
donaldh_ joined
|
|||
moritz_ | I don't think that's sufficieent | 21:06 | |
PerlJam | cxreg: perhaps it's prescriptive. | ||
21:09
pmurias left,
pmurias_ left
|
|||
jjore | If the intuit_* methods libintuit or such and could be re-used without rewriting... | 21:10 | |
moritz_ | we should link to libjustdoit.so | 21:11 | |
PerlJam | I wonder people would think of using POD to aid in this comment issue I see on p6l? If "beginning of line" comments are kind of the odd-man-out, then why not =# for them? We already have a POD precedent there. | ||
s/wonder/wonder what/ | |||
timbunce | The error message "Malformed method definition at line 11, near ..." doesn't include a file name. Is there's a ticket open for that or should I open one? | 21:14 | |
moritz_ | timbunce: please open a ticket | 21:15 | |
KyleHa1 | rakudo: say (sub (&x) { &x() }).(&rand) | 21:17 | |
p6eval | rakudo af3efa: OUTPUT«0.764879713141458» | ||
KyleHa1 | rakudo: say (sub (&x) { &x() }).(&srand) | 21:18 | |
p6eval | rakudo af3efa: OUTPUT«Parameter type check failed; expected Callable, but got Code for x in call to _block50in sub _block50 (/tmp/vis6cph4H4:2)called from Main (/tmp/vis6cph4H4:2)» | ||
moritz_ | rakudo: say Code ~~ Callable | ||
p6eval | rakudo af3efa: OUTPUT«1» | ||
KyleHa1 | rakudo: say (sub (&x) { &x() }).(&exit); say "alive"; | 21:19 | |
p6eval | rakudo af3efa: OUTPUT«Parameter type check failed; expected Callable, but got Code for x in call to _block50in sub _block50 (/tmp/73Sy5DpXCZ:2)called from Main (/tmp/73Sy5DpXCZ:2)» | ||
timbunce | Is there a rakudobug script for opening tickets (like perlbug for perl5) | ||
moritz_ | timbunce: no | 21:20 | |
KyleHa1 | You can send email to [email@hidden.address] | ||
timbunce | moritz_: is that a bug? ;) | ||
moritz_ | timbunce: ;-) maybe | ||
colomon_ | surely it is NYI? ;) | 21:21 | |
moritz_ | timbunce: btw it seems that Data::Dumper::Simple is only used for debugging, so I could easily remove it | 21:23 | |
21:23
fridim_ left
|
|||
timbunce | moritz_: feel free! thanks | 21:24 | |
moritz_ | (is there a dbdi IRC channel somewhere?) | ||
timbunce | no, not yet. Any preference for freenode vs irc.perl.org? | 21:25 | |
moritz_ | I'm on both either way | ||
PerlJam prefers freenode but what moritz_ said | 21:26 | ||
timbunce | PerlJam: why? (I'm clueless re irc) | ||
moritz_ | timbunce: btw on google code you added me as a commiter to perl-devel-nytprof, not to java2perl6 | 21:27 | |
PerlJam | timbunce: just general ... "tone" of the channels. freenode is more open and inviting and less stabby-in-the-face :) | ||
21:27
molaf left
|
|||
timbunce | moritz_: do'h! just a sec... | 21:27 | |
PerlJam: *shrug* ok. Any admin issues if I want to run a channel on freenode? Do I need to ask someone to oper privs [I'm trying to pretend I know what I'm talking about] | 21:30 | ||
moritz_: feel free to send nytprof patches anyway ;) | |||
moritz_ | timbunce: nice try ;-) | ||
timbunce | moritz_: well you're an admin on java2perl6 now. | 21:31 | |
While I'm here... Anyone else want a commit bit to this "paving stone on the road to DBI for Perl6"? | 21:32 | ||
PerlJam | timbunce: I'll take one | ||
timbunce | great. gimme an email associated with a google.com account and you're in. | 21:33 | |
PerlJam | [email@hidden.address] | ||
moritz_ | timbunce, PerlJam: ok, #dbdi on freenode it is | 21:34 | |
I registered the channel, no further formalities required | |||
timbunce | moritz_: excellent, thanks. | 21:35 | |
21:35
eternaleye left
21:36
ilbot2 left,
ilbot2 joined
21:38
braceta left
21:39
joe____ joined
21:40
joe____ left
21:41
donaldh_ left
21:42
eternaleye joined
21:45
java2perl6_svn joined,
java2perl6_svn left
|
|||
pugs_svn | r27953 | kyle++ | [t/spec] Test for RT #68234 | 21:52 | |
r27954 | kyle++ | [t/spec] Test for RT #68116 | |||
21:56
Patterner left
22:02
donaldh_ joined
|
|||
mzedeler | timbunce: how far are you with DBI? | 22:02 | |
...for perl6, that is. | |||
timbunce | mzedeler: not very, but there is life! Join #dbdi | 22:04 | |
Anything wrong with: class j2 { multi method add( j1 $v1) { ... } }; | 22:06 | ||
22:07
Whiteknight joined
|
|||
moritz_ | timbunce: not if j1 is pre-declared as a type | 22:07 | |
TimToady | std: }; | ||
p6eval | std 27954: OUTPUT«===SORRY!===Confused at /tmp/xKvSlI3eBO line 1:------> }⏏;FAILED 00:02 36m» | ||
moritz_ | std: class j1 { }; class j2 { multi method add( j1 $v1) { } }; | ||
TimToady | std: class j2 { multi method add( j1 $v1) { ... } }; | ||
p6eval | std 27954: OUTPUT«ok 00:03 40m» | ||
std 27954: OUTPUT«===SORRY!===Malformed block at /tmp/7o3YENYtZ9 line 1:------> class j2 { multi method add( ⏏j1 $v1) { ... } }; expecting any of: parameter signature type_constraint typenameFAILED 00:03 41m» | |||
timbunce | moritz_: which is where the recursive-use problem I'm having comes in. ok. | 22:08 | |
TimToady | Malformed block?!? | ||
moritz_ | TimToady: seems like STD.pm needs a test suite that checks error types... ;-) | 22:09 | |
22:10
Limbic_Region joined
|
|||
TimToady | I think the ** '|' of multisig is masking the signature error somehow | 22:12 | |
22:13
KyleHa1 left
22:14
ruoso joined
22:15
donaldh_ left
22:21
zamolxes left
|
|||
ruoso | TimToady, btw... we're trying to avoid it, but more and more, we're starting to depend on the S11 decision... | 22:27 | |
22:28
elmex left
22:30
elmex joined
|
|||
mzedeler | Question: how do I return two arrays in perl 6? In other words, return [@a], [@b] translated to perl 6 parlance? | 22:32 | |
TimToady | ruoso: you keep saying that, and I keep wishing you'd ask a more specific question | 22:34 | |
ruoso | mzedeler, if you want the caller to decide if the list is going to be flattened or not, just do return @a, @b... otherwise use [@a],[@b] | ||
TimToady, well... I have changed S11 to a proposed format... you said you would evaluate it... | 22:35 | ||
pugs_svn | r27955 | lwall++ | [STD] give better errors on malformed parameters and undeclared types | ||
r27955 | lwall++ | [STD] disallow sub() {} | |||
r27955 | lwall++ | [STD] improve nofun to check for absence of ' - \w | |||
r27955 | lwall++ | [viv] more -5 updates to emit nested grammars correctly | |||
r27955 | lwall++ | [Cursor] remove unused indent function | |||
mzedeler | Okay. That leads to another question. How can I make the caller ensure that the lists aren't flattened? | 22:36 | |
TimToady | my (@a,@b) := function() | ||
(in theory, doubt it works in rakudo) | 22:37 | ||
mzedeler | The := in stead of = does the trick? | ||
TimToady | yes, binds the returned Capture to a Signature | ||
so same process as when you call foo(@a,@b) and bind to two parameters | 22:38 | ||
mzedeler | Thanks! I'll try it out. | ||
TimToady | as I say, rakudo may hiccup on that | ||
mzedeler | ...just the opposite way. Sounds like a nice feature. | ||
ruoso | rakudo: sub foo { my @c = 1,2,3; my @d = 4,5,6; return @c,@d };my (@a, @b) := foo(); | 22:39 | |
p6eval | rakudo af3efa: OUTPUT«rtype not setin Main (src/gen_setting.pm:3369)» | ||
mzedeler | Got the same here. | ||
So I could bypass it using square brackets? (return [@a], [@b])? | |||
ruoso | mzedeler, that would prevent the flattening at all | 22:40 | |
TimToady, about S11. Being specific: does the code snippet as in S11:168 describe how a module should be loaded? or is it something different? | 22:41 | ||
mzedeler | I get a kind of perl5 behaviour... | 22:45 | |
perl6: sub t { my @a = 1, 2; my @b = 3, 4; [@a], [@b]}; my(@x, @y); (@x, @y) = t(); say "x: {@x} y: {@y} | |||
p6eval | rakudo af3efa: OUTPUT«say requires an argument at line 2, near " \"x: {@x} "in Main (src/gen_setting.pm:2473)» | ||
..pugs: OUTPUT«***  Unexpected end of input expecting block, "\\", variable name or "\"" at /tmp/6mD31gbxb3 line 2, column 1» | |||
..elf 27955: OUTPUT«Parse error in: /tmp/bSMHdNq750panic at line 1 column 82 (pos 82): Error in quotesnabberWHERE: @x, @y); (@x, @y) = t(); say "x: {@x} y: {@y}WHERE: /\<-- HERE STD_red/prelude.rb:99:in `panic' STD_red/std.rb:1306:in `quotesnabber' (eval):1:in | |||
mzedeler | perl6: sub t { my @a = 1, 2; my @b = 3, 4; [@a], [@b]}; my(@x, @y); (@x, @y) = t(); say "x: {@x} y: {@y}" | ||
p6eval | ..`__… | ||
rakudo af3efa: OUTPUT«x: 1 2 3 4 y: » | |||
..elf 27955: OUTPUT«x: {@x} y: {@y}» | |||
..pugs: OUTPUT«x: 1 2 y: 3 4» | |||
mzedeler | Sorry. There it was. | ||
I am using rakudo, but it seems that pugs got it right. | 22:46 | ||
ruoso | yeah... rakudo is doing something wrong... | ||
it wasn't supposed to flatten | |||
mzedeler | Okay. Will find a way around it. Thanks for the help. | 22:47 | |
cognominal | TimToady, is there any conflicts between the Cat role and the mammal Cat in the synopses? | ||
TimToady | perl6: sub t { my @a = 1, 2; my @b = 3, 4; [@a], [@b]}; my ($x, $y) = t(); say "x: {@$x} y: {@$y}" | 22:48 | |
p6eval | rakudo af3efa: OUTPUT«Symbol '@$x' not predeclared in <anonymous> (/tmp/HWs3nPFneZ:2)in Main (src/gen_setting.pm:3369)» | ||
..pugs: OUTPUT«x: 1 2 y: 3 4» | |||
..elf 27955: OUTPUT«syntax error at (eval 126) line 8, at EOFsyntax error at (eval 126) line 11, near "} =" at ./elf_h line 5881» | |||
22:48
timbunce left,
nihiliad left
|
|||
TimToady | perl6: sub t { my @a = 1, 2; my @b = 3, 4; [@a], [@b]}; my ($x, $y) = t(); say "x: {@($x)} y: {@($y)}" | 22:48 | |
p6eval | pugs, rakudo af3efa: OUTPUT«x: 1 2 y: 3 4» | ||
..elf 27955: OUTPUT«syntax error at (eval 126) line 8, at EOFsyntax error at (eval 126) line 11, near "} =" at ./elf_h line 5881» | |||
TimToady | there, rakudo can do that | 22:49 | |
cognominal: probably | |||
cognominal | ok | 22:50 | |
or do you do duck typing? meaning lowering your head on type problems :) | 22:52 | ||
TimToady | the first should probably be LazyCat or some such | ||
mzedeler | Thanks, Tim. | ||
TimToady | I'm not a Tim, just a Tim Toady | ||
cono | :D | ||
cognominal | apparently, some think you’re a Tim Today | 22:53 | |
"Anti-health-care-reform activist, reportedly injured in a fight at a town hall meeting last week, is collecting donations to pay his medical bills because he was recently laid off and lost his health insurance." | 22:58 | ||
alester | Who will help with the Pointless Complaints About Perl 6 FAQ? | ||
cognominal | oops, soory, wrong channel :( | 22:59 | |
alester | gist.github.com/165482 | 23:00 | |
__ash__ | i hear one a lot, that perl 6 didn't do anything to help it be more readable than perl 5 | ||
alester | and your response to that is? | 23:01 | |
__ash__ | there is a lot of semantic meaning behind the changes they did make, even if you have to learn to recognize a few symbols to understand the semantics, like how sigils static to the variable they were defined with | 23:02 | |
mzedeler | alester: (Andy Lester?) What needs to be done+ | 23:03 | |
? | |||
alester | add more whining you've heard, and your response | ||
Perl 6 threads get old quickly. | 23:04 | ||
TimToady | you should rename it "Complaints Raised About Perl 6" for a more appropriate acronym | ||
alester | hahahah | ||
__ash__ | most of those complaints come from a python programmer, so take that with a grain of salt | ||
alester | beautiful | ||
mzedeler | I haven't heard much whining yet. I suppose thats in store for me some time later. | 23:05 | |
cognominal | The waterbed theory : if you eschew the complexity in the language by refusing to learn a powerful langage it will appear in your code. So instead dealing with it once, we will deal with zillions of badly reeinvented wheels | ||
alester | I'm trying to find TimToady 's statements about Perl 6 early on. | 23:07 | |
For now, I handle the "missed the boat" gripe with | |||
Perl 6 is not, and never has been, about capturing market share, | |||
or fitting a given niche, or becoming the pre-eminent tool of choice | |||
for a given problem area. | |||
TimToady | it's CRAP logic: any utterance in Perl 5 can be translated into more readable Perl 6, therefore Perl 6 is less readable :) | ||
mzedeler | ...or people will use the new, all-powerful language to reinvent their square wheels anyway :-) | 23:08 | |
My best bet is that one out of six questions at perlmonks is a square wheel reinvention request. | |||
23:09
SmokeMachine left
|
|||
TimToady | std: class j2 { multi method add( j1 $v1) { ... } }; | 23:09 | |
p6eval | std 27955: OUTPUT«===SORRY!===Invalid typename j1 at /tmp/fyrjbvQ8Z4 line 1:------> class j2 { multi method add( j1⏏ $v1) { ... } };FAILED 00:03 41m» | ||
TimToady | that's more like it | 23:10 | |
23:10
__ash__ left
|
|||
alester | TimToady: Is my assessment re: market share a fair assessment? | 23:10 | |
TimToady | Perl 6 isn't about missing boats, but about inventing airplanes. | 23:11 | |
alester | Nice. | ||
cognominal | if market share is measured in LOCs, TimToady works hard to be a loser. :) | ||
alester | Oh, I forgot my favorite! It's taken too long. | ||
TimToady | yeah, 22 years so far, and counting :) | 23:12 | |
23:18
alester left
23:20
donaldh left,
ihrd joined,
donaldh joined
23:28
payload joined
23:33
dalek left,
dalek joined,
mzedeler left
23:38
M_o_C left
23:42
cdarroch left
23:43
tann joined
|
|||
tann | rakudo: .say for qx/ls -la/; | 23:43 | |
p6eval | rakudo af3efa: OUTPUT«operation not permitted in safe modein Main (lib/Safe.pm:25)» | ||
tann | pugs: .say for qx/ls -la/; | 23:44 | |
p6eval | pugs: OUTPUT«*** Unsafe function 'Pugs::Internals::runShellCommand' called under safe mode at /tmp/VkIkXFCoeO line 1, column 10-20» | ||
23:47
carlin joined
|