»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by lichtkind on 5 March 2010. |
|||
00:01
calin left
|
|||
sorear | True or false: Rakudo's move to git caused all but 2 core developers to quit in disgust. | 00:04 | |
patrickas | can the answer to that be a junction ? | 00:06 | |
00:10
kokajxo left
|
|||
lue | where was it before? | 00:11 | |
eternaleye | lue: In the parrot repository under languages/ (SVN) | 00:12 | |
sorear: I don't remember anyone ragequitting over the move to git | |||
lue | why would you quit *in disgust* ? git is a product of Linus Torvalds! | 00:13 | |
I say False | 00:14 | ||
snarkyboojum | as a new contributor it doesn't really matter which cvs is in use by a project, you just learn enough to contribute | ||
that's my experience anyway :) | |||
00:15
redicaps joined
|
|||
snarkyboojum | I think pulling in new devs to a project or losing them is a function more of the project and the culture than the versioning tool used | 00:16 | |
00:16
wolverian joined
|
|||
eternaleye | +1 | 00:17 | |
lue | .oO(we switched to git more developers) |
00:18 | |
snarkyboojum | the current debate on #parrot doesn't seem to be considering that, and anyway, both SVN and Git are comprehensive and effective versioning tools | 00:20 | |
end rant :) | |||
lue | that seemed more like an observation than a rant :) | ||
snarkyboojum | lue: true :) | 00:21 | |
lue | jnthn --rantify --target="snarkyboojum" --when="[17:20:16]" | 00:22 | |
00:24
patrickas left
00:25
k23z__ left
|
|||
lue | darn, jnthn must be offline :) | 00:26 | |
00:27
envi_home2 is now known as envi_home
00:32
cdarroch left
|
|||
diakopter | sorear: who were the core developers prior to the move | 00:32 | |
sorear: oh; you don't know..? /me backlogs irclog.perlgeek.de/parrot/today | 00:33 | ||
heh. | 00:35 | ||
00:36
astinus joined
|
|||
sorear | Synopsis clarification request: S09. Do arrays allocate [1] and [0] when allocating [2]? Do arrays with finite defined index sets allocate eagerly? How is it possible to index an array with an infinite number of dimensions, when equality of infinite lists is Rice-hard? Can individual array elements be tied or bound? Is S09:718 a typo? | 00:41 | |
How are slice expressions where the subscript evaluates to 0 or 1 element disambiguated from zen slices and index expressions, respectively? | 00:42 | ||
lue | rakudo: my @a= (3); @a[2]=3; say @a.perl | ||
p6eval | rakudo c4857a: OUTPUT«[3, Proxy.new(), 3]» | ||
lue | proxy? ō.o | 00:43 | |
sorear | rakudo != spec | ||
lue | of course it doesn't. that's why people are developing it :D | 00:44 | |
00:46
mce_ro left
|
|||
lue | std: rakudo == spec | 00:46 | |
p6eval | std 30529: OUTPUT«===SORRY!===Preceding context expects a term, but found infix == instead at /tmp/Jexl3dHlBm line 1:------> rakudo ⏏== specParse failedFAILED 00:01 110m» | ||
sorear | that error message could stand to be more awesome | 00:49 | |
00:49
wolverian left
|
|||
diakopter | std: ::rakudo == ::spec | 00:49 | |
p6eval | std 30529: OUTPUT«ok 00:01 108m» | ||
sorear | ideally it should backtrack - list prefix operator cannot be used preceding an operator; did you mean rakudo() ? | 00:50 | |
s:2nd/<?before "operator">/infix / | |||
lue (won't dare this, but) wonders if easter eggs in rakudo would be overlooked by every. body. who. contributes. | 00:51 | ||
diakopter | just kickban dalek temporarily :P | 00:52 | |
lue | and anyone who questions/objects the kickban :) | 00:53 | |
00:54
snarkyboojum left
|
|||
eternaleye | Simpler: Just wait until dalek hiccups next | 00:57 | |
Happens every once in a while | |||
00:57
k23z__ joined
|
|||
lue tries to open the OOP floodgates... but doesn't have op. :( | 01:00 | ||
s/op/commit bit/ | |||
TimToady | sorear: zen slices are syntactically empty, .[@empty] is never zen | ||
allocate [1] and [0] on [2]=, yes, for some definition of allocate, but do the elements respond to :exists is a good question | 01:01 | ||
I think index sets should give the appearance of having been allocated eagerly, probably | 01:02 | ||
I didn't write much of that middle section; I get svn blamed because I just installed a huge patch from p6l folks. :) | 01:03 | ||
so I don't know if it is a typo | |||
or about infinite dimensionalities; I hadn't thought we were doing hilbert spaces :) | |||
for default arrays, elements may be bound, but not for native types | 01:04 | ||
01:08
rv2733 left
|
|||
sorear | TimToady: How does postcircumfix:<[ ]> know that the inside is syntactically empty? | 01:11 | |
And what about @one-element-list? | |||
TimToady | a slice of one element is indistinguishable from a normal index | 01:12 | |
postcircumfix:<[ ]> (the operator) never sees the zen slice | 01:13 | ||
sorear | I thought slices generated things that act like arrays | ||
TimToady | postcurcumfix:sym<[ ]> asks the semilist if there were any statements inside | ||
sorear | ** is specced as meaning ||(* xx 1..*) | 01:14 | |
an infinite number of *s | |||
TimToady | no, an *arbitrary* number of *s | ||
presumably only works on an array of known dimensionality | 01:15 | ||
sorear | it's specced that way for creating arrays too | ||
TimToady | well, that may be undoable | ||
and I'm certainly not interested in slowing down 6.0 over issues like that :) | 01:16 | ||
I'd go as far as to say none of the ** stuff is needed for 6.0 | |||
on slices, .[@foo] is always taken as single dimensional; we have a Slicel type to indicate that there was a ; in there, so that we can distinguish a Slicel from a Parcel | 01:19 | ||
so, .[@foo] gets a parcel, while .[@foo;] gets a slicel | 01:20 | ||
and presumably a final ; like that is considered "zen" | |||
01:29
pastiche joined
|
|||
TimToady | colomon: if we make CaptureCursor bindings ignore slurpies for the returned position, then your pairwise binding reduces (no pun intended) to -> map $a, *$b {...} | 01:34 | |
that is, slurpy parameters could be considered "lookahead" | |||
er, s/-> map/map ->/ | |||
01:39
orafu left,
orafu joined
01:43
redicaps left
01:45
redicaps joined
|
|||
pastiche | A Perl6 idiom I've seen a couple times is this: `my Foo::Bar $fb .= new;`. Is that short for `my Foo::Bar $fb = $fb.new;`? And if so, how can that work, since you seemingly haven't yet instantiated the Foo::Bar to call `new()` on it? | 01:47 | |
sorear | 1. Yes. | 01:49 | |
2. Every type has an undef value. The undef value of a class type is considered to be the class itself, and supports a new method | |||
sjohnson | hello all | ||
01:50
Minimiscience joined
|
|||
sorear | Hello | 01:50 | |
pastiche | @sorear: then, shouldn't `my Foo::Bar $fb .= new;` instead be short for `my Foo::Bar $fb = Foo::Bar.new();`? | 01:51 | |
sorear | No | ||
Or, yes | |||
Foo::Bar is the inital value of $fb if no initializer is given | 01:52 | ||
01:52
JimmyZ joined
|
|||
pastiche | But, in the statement `my Foo::Bar $fb = $fb.new();`, it looks like $fb is not yet instantiated when you call `.new()` on it. | 01:53 | |
Can the syntax for making a new Foo::Bar object be broken up into 2 lines? What would that look like? | 01:54 | ||
sorear | my Foo::Bar $fb; | ||
$fb .=new; | |||
# equivalently | |||
my Foo::Bar $fb = Foo::Bar; # this is how you write undef in perl 6 | |||
$fb .=new; | |||
# equivalently | |||
my Foo::Bar $fb; | 01:55 | ||
$fb = Foo::Bar.new; | |||
pastiche | @sorear: thank you. | 01:56 | |
01:57
dual left
|
|||
sorear | @? | 01:57 | |
01:59
Psyche^ joined
|
|||
sjohnson | aka at sorear: | 01:59 | |
would be my guess | |||
gfldex | the @ in front of a nickname is forumspeak | 02:01 | |
very common in MMORPGS too | |||
read: he is a rather jung lad :) | |||
sorear | mmm, Jung | 02:03 | |
02:03
Patterner left,
Psyche^ is now known as Patterner
|
|||
sorear | TimToady: There's some interesting potential for awesomeness in STD's parsing of <list prefix operator> <infix> | 02:04 | |
i.e. sub_sub == 2 | |||
STD currently diagnoses a zero-terms-in-a-row error | |||
02:05
Minimiscience left
|
|||
pastiche | @sorear: I thought I was supposed to type `@sorear: ` and then my comment when directing a comment toward you. | 02:05 | |
sorear | I see. | 02:06 | |
jnthn | sorear: "True or false: Rakudo's move to git caused all but 2 core developers to quit in disgust." - er, wtf? | 02:07 | |
false but...huh. | |||
diakopter | jnthn's alive | ||
jnthn | yeah... | 02:08 | |
colomon | Iceland! | ||
jnthn | Iceland brews some quite nice beer. :-) | ||
The people are friendly. | |||
sorear | jnthn: that argument, minus some strawmanning, was used on #parrot a couple hours ago | ||
jnthn | sorear: And, uh, who on earth left? | ||
diakopter | jnthn: sorear was referring to #parrot .. yes | ||
jnthn | At the time we moved, the core developers were, er, me and Pm. | 02:09 | |
lue | so it's TRUE! | ||
sorear awaits the compaints abount dBNPERL; | |||
jnthn | Yes, there were other folks contributing but...nobody I'd consider "core". | ||
diakopter | soft-core maybe | ||
jnthn | Anyway, I don't give a damm what #parrot do. | ||
If they want to use svn, they can use it. If they want to use git, they can use it. | 02:10 | ||
diakopter | or they can debate it | ||
lue thinks of model of insides of Earth, only it's the insides of rakudo and the whole of perl6 | |||
02:10
nihiliad joined
|
|||
jnthn | I'll still, provided I have a commit bit, patch it either way. | 02:10 | |
sorear | and without a commit bit it doesn't affect me either | 02:11 | |
jnthn | diakopter: If the level of the debate is suggesting things about Rakudo development that have no basis in reality, well... :-/ | ||
02:13
fridim_ joined
|
|||
lue | last I checked, #parrot was about Parrot, not (directly at least) about Rakudo. | 02:13 | |
diakopter | well. | 02:17 | |
a hand-dug one. | |||
lue | afk | 02:31 | |
02:38
chromatic joined
|
|||
chromatic | I find that summary of the dicussion on #parrot inaccurate. jnthn or pmichaud or any other Rakudo committer during the Git switch, would you switch to Git again now, knowing what you know a year later? | 02:38 | |
diakopter is jealous of chromatic's fios | 02:42 | ||
er, envious | 02:43 | ||
chromatic | I don't recommend it; the choice is between Comcast or Verizon. | 02:44 | |
That's almost as bad as the choice between Comcast or Qwest. | 02:45 | ||
diakopter | my neighborhood has only Comcast & AT&T | ||
eternaleye | I'm currently on FiOS too, it's good for speed but crappy for reliability. I just want Google to play ISP. | 02:46 | |
sorear | jnthn: That's not the level of the debate. That's the worst thing that came up. The rest was much tamer. | 02:47 | |
chromatic | Reliability is good, except for when Verizon's DNS mysteriously fails. | ||
eternaleye | I just use 8.8.8.8 & 8.8.4.4 | 02:48 | |
So I can ignore those | |||
GoogDNS++ | |||
chromatic | I have local DNS too, but apparently there's filtering. | ||
eternaleye | ick | 02:49 | |
Main reason I switched away from verizon's DNS servers is that they redirect NXDOMAIN to their own (awful) page. | 02:50 | ||
chromatic | Yeah, that's why I switched too... except.... | ||
eternaleye | Well, GoogDNS is global-anycast, and they specifically say they do no filtering | 02:51 | |
02:53
fridim_ left
03:00
wknight8111 left
03:01
zostay left
03:02
nihiliad left
|
|||
sorear | rakudo: has $x | 03:05 | |
p6eval | rakudo c4857a: OUTPUT«You can not add an attribute to a module; use a class or rolecurrent instr.: 'perl6;Perl6;Compiler;Module;attributes' pc 30043 (src/gen/package_pm.pir:625)» | ||
diakopter | rakudo: say $*CURRENT_MODULE; say 4 | 03:13 | |
p6eval | rakudo c4857a: OUTPUT«4» | ||
diakopter | rakudo: say 55 ~ $*CURRENT_MODULE; say 4 | ||
p6eval | rakudo c4857a: OUTPUT«Contextual $*CURRENT_MODULE not foundcurrent instr.: 'perl6;Perl6Exception;throw' pc 14877 (src/builtins/Seq.pir:28)» | ||
diakopter | weird | ||
I guess rakudo's 'say' still has some special-cased exception handling | 03:14 | ||
03:19
pastiche left
03:21
plobsing left
03:25
Transformer joined,
Transformer left
|
|||
sorear | might be worth bugging | 03:28 | |
diakopter | I'm pretty sure masak has bugged that one to bugdeath | 03:29 | |
03:37
alester joined
|
|||
sorear is looking into macro implementation | 03:43 | ||
diakopter | o_O | 03:49 | |
in rakudo? or in STD :P | |||
sorear | rakudo | 03:56 | |
dalek | meta: r232 | diakopter++ | trunk/Sprixel/Main.cs: [perlesque] add -e 'eval code' option to Sprixel.exe |
||
meta: r233 | diakopter++ | trunk/Sprixel/Main.cs: [perlesque] fix my (not 1, but 3!) off-by-one errors. :| |
|||
sorear | but first I need to understand the spec well enough to figure out exactly what the bodies of macros are supposed to /do/ :/ | ||
the obvious way is to treat the body of the macro as just a grammatical action | 03:59 | ||
running in a $/ topicalizer and returning a PAST::Node via make | 04:00 | ||
diakopter | I've slept since I last read that portion of the spec, so ... I'd be no help. | 04:01 | |
sorear: I think TimToady commented on macros here; you might search the irclogs | 04:09 | ||
04:10
plobsing joined
04:12
meppl joined
04:13
justatheory left
04:32
nihiliad joined
04:34
plobsing left
04:38
gfx joined
04:55
cj left
05:02
kst` left,
kst` joined
05:03
ReiniUrban joined
05:04
rurban left
05:05
ReiniUrban is now known as rurban
05:08
crythias left
05:11
dalek left
|
|||
lue | .oO( dalek is gone. Time for that easter egg :) ) |
05:12 | |
05:13
alester left,
dalek joined
05:15
snarkyboojum joined
05:17
cj joined
|
|||
sorear | Why does ~~ have chain associativity? It's not transitive | 05:29 | |
What is the model of operator precence order? The synopsis seems to imply a Stern-Brocot tree with the standard operators identified with the leaves of some truncation, but if I try really hard I can construe it to also mean a free preorder | 05:31 | ||
05:33
fridim_ joined
05:37
nihiliad left
05:39
redicaps left
|
|||
lue | goodnight moon | 05:44 | |
05:46
kaare joined,
kaare is now known as Guest62733
06:04
snarkyboojum left
06:07
gfx left
06:10
molaf joined
|
|||
sorear | diakopter: suprisingly enough, the thing on macros actually mostly makes sense | 06:11 | |
Is anybody running an "anti-smoker", to find out if any spectests have started working and we forgot to unfudge them? | 06:13 | ||
chromatic | I forget the name of the program, but there's a test summary program which does exactly that. | 06:14 | |
sorear | most test harnesses have a thingie for "unexpected successes" | 06:15 | |
however, the fudger defeats that | |||
chromatic | tools/autounfudge.pl ? | ||
sorear | anything guarded by #?rakudo skip is- I'm blind | ||
06:23
kokajxo joined
|
|||
sorear | next, to study the grammar | 06:28 | |
06:33
pmurias joined
|
|||
diakopter | pmurias: g'morning? | 06:42 | |
sleep& | 06:43 | ||
truewar | Good morning) | 06:50 | |
sorear | Hello! | 06:59 | |
pmurias | diakopter: g'morning | 07:00 | |
and g'night | |||
07:03
dalek left
|
|||
truewar | Could anybody introduce me to Perl6? | 07:06 | |
07:07
JimmyZ left,
dalek joined
|
|||
truewar | I am mostly interested in Perl6 Roadmap | 07:07 | |
07:08
JimmyZ joined
07:13
JimmyZ left
|
|||
sorear | truewar, Perl6. Perl6, truewar. | 07:14 | |
if you want a better introduction we'll need to know more about you | |||
trying to explain Perl6 from first principles would take days (weeks?), but we can skip most of that depending on what you know | 07:15 | ||
are you a programmer and are you a Perl 5 programmer are the easiest questions | |||
07:20
sorear left
07:21
sorear joined
|
|||
sjohnson | truewar: perl6.org | 07:22 | |
and you're done! | |||
07:24
kokajxo left
|
|||
sorear | rakudo: sub circumfix:<AA BB> { ... }; AA 2 BB; | 07:33 | |
p6eval | rakudo c4857a: OUTPUT«error:imcc:syntax error, unexpected '\n' in file 'EVAL_1' line 58Confused at line 11, near "AA 2 BB;"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
sorear | rakudo: sub circumfix:«AA BB» { ... }; AA 2 BB; | ||
p6eval | rakudo c4857a: OUTPUT«error:imcc:syntax error, unexpected '\n' in file 'EVAL_1' line 58Confused at line 11, near "AA 2 BB;"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
sorear | huh, rakudo doesn't actually seem to implement scoping of operator definitions | 07:35 | |
at all | |||
this makes things easier | |||
what exactly is a nibbler? | 07:41 | ||
moritz_ | it's a thing that transforms a grammar; or a parametric grammar; or some such :-) | 07:44 | |
sorry, can't answer "exactly" | |||
07:45
M_o_C joined
|
|||
pugssvn | r30530 | pmurias++ | [mildew] started rewriting m0ld using Regexp::Grammars | 08:04 | |
08:14
molaf left
08:16
synth joined
08:17
chromatic left
08:18
snarkyboojum joined
|
|||
pugssvn | r30531 | moritz++ | [t/spec] fudge\e tests for rakudo | 08:40 | |
r30532 | pmurias++ | [mildew] m0ld parses a simple call | 08:42 | ||
moritz_ | sorear: what's true is that after rakudo moved to git, the numbers of patches decreased, because the rakudo code base wasn't subject to parrot's codingstyle tests... | 08:46 | |
sorear: and there were a bunch of people regularly fixing trailing whitespace in rakudo | 08:47 | ||
those people usually weren't given commit access to the rakudo repo on github | |||
so if you look at the bare numbers, yes, the numbers of commiters decreased - but the number of features or bug fixes didn't | 08:48 | ||
08:49
kst` is now known as kst
08:50
dalek left
08:52
Su-Shee joined,
dalek joined
|
|||
sorear | Why does NQP's regex engine wrap the *source* string in a CodeString? | 08:59 | |
moritz_ | because it allows easier search for line numbers, iirc | ||
but pmichaud said it was going to change | |||
sorear wonders why we don't just track lines in $*LINE in the .ws rule | 09:00 | ||
09:03
wolverian joined
|
|||
sorear | reading the grammar for grammars is more than a little trippy | 09:07 | |
09:11
iblechbot joined
09:14
truewar1 joined
09:16
truewar left
09:22
gurjeet left,
gurjeet joined
09:23
alexn_org left
09:25
mberends joined
09:26
mberends left
09:29
JimmyZ joined
|
|||
Guest62733 | Parrots runtime/parrot/library/Pg.pir seems to work, or at least t/library/pg.t runs OK. | 09:32 | |
Can I somwhow use Pg.pir from rakudo? | |||
sorear | yesish | 09:33 | |
pir::load_library("pg.pir") | |||
er | |||
pir::load_bytecode("pg.pir") | |||
Guest62733 | will try try | 09:34 | |
09:34
fridim_ left
|
|||
sorear | you'll then need to do some trickery with pir::get_root_global__PPS to import the symbols you want to use | 09:34 | |
I guess my next project is to fix use :from<parrot> in Rakudo | 09:35 | ||
alpha: use Pg:from<parrot>; | |||
p6eval | alpha 30e0ed: OUTPUT«error loading libpq - loadlib failedin Main (file <unknown>, line <unknown>)» | ||
sorear now understands enough regex guts to at least *try* macros | 09:39 | ||
Guest62733 | sorear: Even if I just want to use it as a class? | ||
sorear | Guest62733: A class is just a kind of global | 09:40 | |
Guest62733 | yeah, makes sense. | 09:41 | |
09:43
kokajxo joined
|
|||
sorear | TimToady: What is the rationale for invoking macros with the match object in self, instead of $/ ? | 09:48 | |
09:48
masak joined
|
|||
masak | ahooloi, lambdacamels, parrotcamels, and camelcamels. | 09:48 | |
sorear | hello masak | 09:49 | |
masak | what's new? | 09:50 | |
JimmyZ | \0\o | ||
moritz_ writes a Perl 6 talk | 09:51 | ||
sorear tries to write a macro implementation | |||
moritz_ | any recommendations what I could use for my slides? | ||
masak | sorear: ! | ||
moritz_: what a general question? | |||
s/\?/./ | |||
moritz_: what kind of talk is it? | |||
moritz_ | sorear: just a word of warning, I think pmichaud mentioned that he doesn't want macros before rakudo star | ||
masak: Perl 6 for a perl 5 perl mongers group | 09:52 | ||
I meant to ask about the technical side | |||
what kind of software to use for writing the talk | |||
I kinda started writing my own, but that seems very inefficient | |||
masak always ends up writing his own :P | |||
09:57
envi_home left,
envi^home joined
|
|||
JimmyZ | hugme: help | 09:58 | |
hugme | JimmyZ: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message ) | ||
JimmyZ | hugme: list projects | ||
hugme | JimmyZ: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web | ||
JimmyZ | p6c | 10:00 | |
masak | moritz_: any chance we could add tardis and yapsi to that list? | 10:02 | |
moritz_ | masak: take your chances, do it :-) | ||
hugme: add masak to hugme | |||
hugme | moritz_: ERROR: Can't add masak to hugme: HTTP/1.1 401 Unauthorized | ||
moritz_ | ouch | 10:03 | |
hugme: add masak to json | |||
hugme | moritz_: ERROR: Can't add masak to json: HTTP/1.1 401 Unauthorized | ||
moritz_ | hugme: add masak to book | ||
hugme hugs masak. Welcome to book! | |||
moritz_ | ok, it's just my account that's b0rked | ||
masak is already welcome to book :) | |||
mayhaps I'll send a patch... | |||
moritz_ | masak: I'll just fix hugme so that I can add you to hugme :-) | 10:04 | |
masak: then you can push | |||
masak | :P | ||
I'll prepare the commit in the meantime. | |||
moritz_ | hugme: reload | ||
hugme | moritz_: reloaded successfully | ||
moritz_ | hugme: add masak to hugme | ||
hugme hugs masak. Welcome to hugme! | |||
moritz_ | there you go | 10:05 | |
masak hugs hugme. thank yoU! | |||
moritz_ | I had just changed my github password, which in turn changed the API token | ||
JimmyZ | hugme: hug masak | ||
hugme hugs masak | |||
masak | hugme has no README :P | ||
moritz_ | masak: you'll find projects.json pretty self-explanatory | ||
masak | hugme: hug 卓明亮 | ||
hugme hugs 卓明亮 and blushes | |||
masak | :) | ||
JimmyZ | hugme: show rakudo | 10:06 | |
hugme | JimmyZ: sorry, I don't know anything about 'rakudo' | ||
JimmyZ | hugme: show nqp-rx | ||
hugme | JimmyZ: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], colomon, jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqp-rx/ | ||
moritz_ | hugme doesn't know about CLAs | ||
masak | patches welcome :) | ||
JimmyZ | hugme: hug 麦高 | 10:07 | |
hugme hugs 麦高 | |||
masak | :) | 10:08 | |
JimmyZ | humge: why not blush? | ||
masak | she only blushes occasionally. | ||
10:09
rurban left
|
|||
masak | hugme: reload | 10:11 | |
hugme | masak: reloaded successfully | ||
masak | hugme: list projects | ||
hugme | masak: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web | ||
moritz_ | hugme: reload | ||
masak | hm. | ||
hugme | moritz_: reloaded successfully | ||
moritz_ | hugme: list projects | ||
hugme | moritz_: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, tufte, web, yapsi | ||
masak | \o/ | ||
I was too quick. | |||
moritz_ | I still have to pull manually on feather2 | 10:12 | |
paranoia etc. | |||
10:15
gurjeet left,
gurjeet joined
|
|||
masak | ah. | 10:18 | |
yes, keep it that way. | |||
10:25
JimmyZ left
10:26
M_o_C left
|
|||
colomon | I didn't know I had a commit bit on nqp-rx. (Or had forgotten, at any rate.) | 10:26 | |
moritz_ | colomon: you probably don't, unless you gave yourself one | ||
sorear | hugme's list is metacommitters | 10:27 | |
moritz_ | colomon: it's the list of people who can add commiters, not he committers | ||
right, what sorear said | |||
truewar1 | Sorear, sorry. was AFK | ||
sorear | don't apologize, we have logbuffers for a reason | ||
colomon | ah, that makes sense. | ||
sorear | I'm AFK 8-18 hours a day and never apologize about it | ||
truewar1 | I used PHP for 8 years. I also used Perl5 several times for small scritps: backup, creating hosting accounts etc. | 10:28 | |
But now I have some reasons to choose other tahn PHP language for my projects. | 10:29 | ||
I read about Python and I even wanted to choose it and BAH! found Perl6 | 10:30 | ||
I read some tips about it, about objects model | |||
They are really nice | |||
masak | we like it too. :) | 10:31 | |
truewar1 | Does it have any road map or something? What future waits for that project? | ||
masak | truewar1: maybe someone has told you this already, but current implementations (like Rakudo) are both quite far along and a bit bumpy still. | 10:32 | |
10:32
truewar1 is now known as Truewar
|
|||
masak | Truewar: github.com/rakudo/rakudo/blob/maste...cs/ROADMAP | 10:32 | |
Truewar: the immediate future holds a promised distribution release called Rakudo Star. | 10:33 | ||
jnthn | Morning :-) | ||
masak | jnthn: \o/ | ||
jnthn | And yes, it *is* still morning in Iceland! | ||
moritz_ | what time zone is iceland? GMT-2? | ||
ah, UTC | 10:34 | ||
just found it | |||
masak | that's my favorite time zone :) | ||
10:35
JimmyZ joined
|
|||
Truewar | WHat kind of soft I need to use perl6 for web projects? | 10:35 | |
sorear | hmm | ||
masak | Truewar: last year we developed something called Web.pm for exactly that purpose. | ||
sorear | Do I understand correctly that, while we parse a file, the Match objects retain *both* a full AST *and* the PAST? | 10:36 | |
masak | but it's not done yet, and the best advice I have is to start small and be patient. | ||
moritz_ | sorear: yes | ||
sorear | I wonder if that accounts for much of our memory use when compiling the setting | ||
masak | Truewar: if you haven't done any Perl 6 before, it might be better to start with something non-web. the web parts are still full of frustration. | 10:37 | |
and I don't believe latest Rakudo does sockets yet. | |||
jnthn | masak: I'm pretty sure sockets are back since a while. | 10:38 | |
masak | I sit corrected. sockets are back. | ||
(whoever did that)++ | |||
jnthn | I forget who, but yes. :-) | 10:39 | |
masak: Well, I like the timezone shift in that I could get up at a sensible time here, but it was like sleeping until midday back home. | 10:40 | ||
Truewar | %) | ||
masak | jnthn: there's a 'fun' surprise for you when you go back home, then... :P | 10:41 | |
jnthn | masak: oh noes... | ||
I should just do continual round-the-world trips. | |||
masak | then you'll inexplicably start to lose days instead :) | 10:42 | |
sorear | trait_mod: stuff is only run at CHECK time? | ||
this will make the implementation of 'is parsed' somewhat awkward | 10:43 | ||
masak | I'm doing spectesting now in order to apply JimmyZ's patch. are the 9 fails in t/spec/S05-mass/properties-derived.rakudo known? | 10:44 | |
moritz_ runs that file | 10:45 | ||
All tests successful. | |||
jnthn | sorear: We special case a few of them. | ||
moritz_ | masak: one of the properties- files had some tests that pass on some platforms, and fail on others | 10:46 | |
masak: maybe somebody unfudged them because they were passing TODOs for them | |||
masak | ah. | ||
jnthn | sorear: But in general, yes. | ||
moritz_ | maye #?skip them this time | ||
masak | I've seen those failures before. | 10:47 | |
jnthn | Min internets e kas. | ||
masak | I think I've added fudges for them once. | ||
moritz_ | *maybe | ||
masak | or not. the file hasn't been touched since August. | 10:48 | |
moritz_ | then it's a new failure | ||
10:48
kokajxo left
|
|||
moritz_ | maybe related to nqp-rx updates? | 10:48 | |
10:50
sjn left
|
|||
masak | yeah... | 10:50 | |
this still feels horribly familiar. | |||
masak greps the irclogs | |||
jnthn goes for breakfast...to a place that serves Jack Daniels milkshakes. | 11:01 | ||
sorear has decided that the sanest way to implement macro foo is parsed(/bar/) { bazzle } is to notionally rewrite it into BEGIN { Perl6::Compiler.add_macro('foo', /bar/, sub ($/) { bazzle }); | |||
} | |||
masak backlogs the #parrot discussion about git from last night, and is alarmed and dismayed by how out-of-touch some of the core Parrot people seem to be with Rakudo development | 11:08 | ||
apart from the spectest failures in two properties- files in S05, I also had a few 'TODO passed' in t/spec/S14-roles/anonymous.rakudo and t/spec/S32-str/uc.rakudo | 11:11 | ||
sorear | rakudo: my $r = { $^a } | 11:16 | |
p6eval | rakudo c4857a: ( no output ) | ||
11:26
wknight8111 joined
11:28
M_o_C joined
|
|||
JimmyZ | good evening, #perl6 | 11:46 | |
masak | \o | 11:47 | |
JimmyZ: almost done spectesting your patch. looks godd so far. | 11:48 | ||
JimmyZ | masak: just a replace of substr :) | 11:49 | |
masak | aye. I know. still, gotta be careful. | ||
sorear | ok, time to try it | 11:51 | |
sorear builds stage1 | 11:52 | ||
dalek | kudo: 376196d | masak++ | src/glue/contextuals.pir: [src/glue/contextuals.pir] s/concat/replace/ |
11:56 | |
masak | I should have written the name as hanzi as well... :) | 12:01 | |
sorear | it compiles... | 12:07 | |
moritz_ | masak: the passing TODO here are in properties-general, not properties-derived | 12:08 | |
masak: and the one in S14-roles/anonymous are unreliable :( | 12:09 | ||
masak | yes, unreliable. that's what I got when I ran a second time and didn't get most of the failures and todo passes... | ||
12:13
BrowserUk joined
|
|||
masak | from S12: 'If there is a C<self:sort> operator defined, that will be used.' yet S02 doesn't list 'self:' as a grammatical category. also, the whole thing is quite arbitrary. can we scratch this bit? | 12:14 | |
moritz_ | +1 | 12:17 | |
custom sorting is done by overloading infix:<cmp> | |||
masak | last time I mentioned this to TimToady, he sounded like he was open to this particular darling being killed. | 12:19 | |
if a third person agrees, I'll wipe it from the spec. | |||
moritz_ counts: masak, TimToady, moritz_ | 12:20 | ||
masak | :) I'll log back and see what he actually said. | ||
arnsholt | masak: Yeah, that was quite the debate on git/svn | 12:21 | |
masak realizes from the irclog search results that he says 'sort' way to often :) | 12:24 | ||
arnsholt: I'm glad they have the debate, but I'm sad to see some of them so disconnected from Rakudo development. | 12:27 | ||
moritz_ | #parrot? | ||
12:29
iblechbot left
|
|||
masak | yeah. the logs from around midnight. (slightly before and after) | 12:30 | |
sorear | rakudo: sub infix:sym<@@> ($x, $y) { } | ||
p6eval | rakudo c4857a: OUTPUT«A method named '>' already exists in class 'Perl6;Grammar'. It may have been supplied by a role.current instr.: 'parrot;P6metaclass;add_method' pc 422 (runtime/parrot/library/P6object.pir:326)» | ||
moritz_ | masak: I didn't bother to backlog yet | ||
masak submits rakudobug | |||
moritz_ | masak: known already | ||
masak | ah, ok. | ||
it did look familiar :) | |||
12:37
BrowserUk left
12:43
stepnem left
|
|||
moritz_ | rakudo: sub swap($a is rw, $b is rw) { ($a, $b) = ($b, $a) }; swap(3, 4) # should that die? | 12:55 | |
p6eval | rakudo c4857a: ( no output ) | ||
moritz_ | I'm quite sure it should :/ | ||
12:55
moritz_ sets mode: +v p6eval
|
|||
masak | aye, me too. | 12:55 | |
moritz_ predicts masak's next line | 12:56 | ||
masak does the thing that fulfills that prediction | |||
moritz_ | I have a nice example for named parameters for my talk | 12:58 | |
but actually it's not the named paramters that are nice | |||
sub rectangle(:$width, :$height, :$char = 'X') { | |||
say $char x $width for ^$height; | |||
} | |||
masak | nice. | ||
moritz_ | I think $width and $height should be mandatory if they don't have a default | 13:00 | |
masak | aye. seems the only sensible defaults are (1,1) or a pair of program-wide constants. | 13:02 | |
sorear | rakudo: sub foo is bar { } | ||
p6eval | rakudo c4857a: OUTPUT«Could not find sub &charscurrent instr.: 'perl6;Signature;_block23798' pc 518026 (src/gen/core.pir:82346)» | ||
masak | o.O | 13:04 | |
rakudo: sub foo($a is rw) { $a = 5 }; foo(42) | 13:15 | ||
p6eval | rakudo c4857a: OUTPUT«Cannot assign to readonly valuecurrent instr.: '&die' pc 17391 (src/builtins/Junction.pir:410)» | ||
masak | rakudo: (1, 2) = 3, 4 | ||
p6eval | rakudo c4857a: ( no output ) | ||
masak | ok, so it's the list assignment that doesn't pick up on non-rw values. | 13:16 | |
moritz_ | ah, I remember that I've fudged some tests for that | 13:19 | |
13:25
gurjeet left,
gurjeet joined
13:26
rv2733 joined
13:29
BrowserUk joined
13:34
k23z__ left
13:42
kokajxo joined
13:48
FreeStorm joined
13:51
FreeStorm left
13:57
finanalyst joined
|
|||
finanalyst | rakudo: my %h=<a b c> Z 1,2,3; for %h { .say } | 13:58 | |
p6eval | rakudo c4857a: OUTPUT«a 1b 2c 3» | ||
finanalyst | alpha: my %h=<a b c> Z 1,2,3; for %h { .say } | 13:59 | |
p6eval | alpha 30e0ed: ( no output ) | ||
masak | feels like alpha timed out there. | ||
works locally here. | 14:00 | ||
finanalyst | masak: i think there should only be one CR not two in the rakudo output | ||
masak | yes, now I see it. | ||
rakudo: my %h=<a b c> Z 1,2,3; say +%h | |||
p6eval | rakudo c4857a: OUTPUT«3» | ||
masak | odd. | ||
finanalyst | shall i report a bug? | 14:01 | |
masak | please do. | ||
finanalyst | just checking first. | ||
masak | rakudo: my %h=<a b c> Z 1,2,3; for %h { say "!" } | ||
p6eval | rakudo c4857a: OUTPUT«!» | ||
masak | ah, there you go. | ||
no bug :) | |||
or, hm. | 14:02 | ||
should a hash stringification end in a newline? | |||
maybe not. | |||
anyway, the difference is this: | |||
rakudo: my %h = a => 1; say $a | 14:03 | ||
p6eval | rakudo c4857a: OUTPUT«Symbol '$a' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
masak | oops. | ||
rakudo: my %h = a => 1; say %a | |||
p6eval | rakudo c4857a: OUTPUT«Symbol '%a' not predeclared in <anonymous>current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)» | ||
masak | erm. | ||
rakudo: my %h = a => 1; say %h | |||
p6eval | rakudo c4857a: OUTPUT«a 1» | ||
masak | alpha: my %h = a => 1; say %h | ||
p6eval | alpha 30e0ed: ( no output ) | ||
masak | locally, 'a 1'. | ||
finanalyst | seems something wrong with alpha | 14:04 | |
masak | with p6eval's alpha, yes. | 14:05 | |
finanalyst | but i think i have used for %h loop before and it did not give an extra CR | ||
i dont understand why it should | |||
masak | alpha iterates over the pairs. | 14:06 | |
rakudo master doesn't. | |||
finanalyst | ah | ||
masak | that seems to be the difference. | ||
so I'll change my mind again. | 14:07 | ||
it's a bug :) | |||
please submit. | |||
finanalyst | doing so | ||
masak | finanalyst++ | ||
14:09
isBEKaml joined,
redicaps joined,
k23z__ joined
|
|||
finanalyst | std: my %e = <a b c verbose> Z 1,2,3, 'yes'; for %e { .say } if %env<verbose> ~~ 'yes'; | 14:10 | |
p6eval | std 30532: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/OTEl6DO1b8 line 1:------> verbose> Z 1,2,3, 'yes'; for %e { .say }⏏ if %env<verbose> ~~ 'yes'; expecting horizontal whitespaceParse failedFAILED | 14:11 | |
..00:… | |||
finanalyst | std: my %e = <a b c verbose> Z 1,2,3, 'yes'; for %e { .say } if %e<verbose> ~~ 'yes'; | ||
p6eval | std 30532: OUTPUT«===SORRY!===Strange text after block (missing comma, semicolon, comment marker?) at /tmp/M1MnsD59gl line 1:------> verbose> Z 1,2,3, 'yes'; for %e { .say }⏏ if %e<verbose> ~~ 'yes'; expecting horizontal whitespaceParse failedFAILED | ||
..00:02… | |||
masak | you can't put a statement-modifying anything after a block for loop. | ||
that's, like, a category error or something. | |||
statement-modifiers modify statements, not blocks. | 14:12 | ||
finanalyst | oh i see now | ||
std: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %env<verbose> ~~ 'yes' { for %e { .say } } | 14:13 | ||
p6eval | std 30532: OUTPUT«===SORRY!===Variable %env is not predeclared at /tmp/sKcs96gWlO line 1:------> <a b c verbose> Z 1,2,3, 'yes'; if %env⏏<verbose> ~~ 'yes' { for %e { .say } }Check failedFAILED 00:02 109m» | ||
finanalyst | std: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %e<verbose> ~~ 'yes' { for %e { .say } } | ||
p6eval | std 30532: OUTPUT«ok 00:02 109m» | ||
14:14
BrowserUk left
14:16
redicaps left
14:22
iblechbot joined
14:24
envi^home left
14:27
envi^home joined
14:34
fridim joined
|
|||
moritz_ | rakudo: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %e<verbose> ~~ 'yes' { for %e { .say } } | 14:39 | |
TimToady | sorear: we don't track $*LINE in <ws> because it would be *very* fragile, especially in the presence of grammar extensions that might match \n or \v or even .*? themselves. | ||
p6eval | rakudo c4857a: OUTPUT«a 1b 2c 3verbose yes» | ||
TimToady | also, line numbers would be redundant when we're already tracking the current position in every Cursor | ||
plus, you'd have to track how every different editor counts Unicode characters as lines; much easier to do that in one position-to-line mapping routine than spread across a grammar | 14:40 | ||
for this reason I keep trying to encourage the parrotfolk to STOP TALKING ABOUT LINE NUMBERS!!!! | 14:41 | ||
but they ignore me, for hysterical raisins :) | 14:42 | ||
since the primary point of parrot, to begin with, was that I wasn't to be let near it. | |||
moritz_ | you talk about line numbers yourself :-) | ||
TimToady | well, but I'm a hypocrite | ||
I wouldn't mind if they talk about line numbers if they also talked more about positions :) | 14:43 | ||
well, it's not a make-or-break issue for parrot; and neither is git vs svn | 14:44 | ||
14:46
kokajxo left
14:50
pmurias left
|
|||
masak | indeed. | 14:52 | |
14:53
nihiliad joined
|
|||
TimToady | sorear: the macro is probably actually invoked with a Cursor in self, not a Match object; we didn't understand the difference when that spec was written | 14:53 | |
sorear | the macro's parser, absolutely - it's a regex | 14:54 | |
the body of the macro feels like an action method to me | 14:55 | ||
TimToady | and we should proably scrap 'is parsed' and make the inside regex code :) | ||
sorear | What. | ||
Where do I put my *code* then? | |||
TimToady | inside the regexes { make ... } | 14:56 | |
regex's | |||
which, funny thing, returns an AST | |||
just looking at the general solution here | |||
we could still have sugar for old methody non-regex macros | |||
may "macro" is not a sub-slot declarator, but a scope-slot declarator | 14:57 | ||
macro regex vs macro method | |||
dalek | psi: 08364fc | masak++ | lib/Yapsi.pm: [Yapsi.pm] added Yapsi::Environment at runtime) into another compilation, allowing for such things as BEGIN time and a REPL. |
14:58 | |
moritz_ | and eval! | ||
masak | hm, indeed. | ||
TimToady | well, just poking a method into the current grammar is not quite what macros do currently | ||
masak | moritz_: but blocks don't return values yet. so eval could only be used for side effects. | 14:59 | |
sorear | TimToady: I still don't understand. How can 'make' set the AST attribute of a match object that doesn't exist yet? | ||
moritz_ | masak: if you have side effects, you can cheat with as !return_value variable :-) | ||
TimToady | make sets the AST attribute that rides along with the returned Cursor | ||
all grammar methods return Cursors, really | 15:00 | ||
otherwise the next method wouldn't know what language it's in, or the current position | |||
masak | moritz_: yuck :) | ||
TimToady | our current macros actually fire off more at reducecheck time | 15:01 | |
or an infix, say, would not have its arguments yet | 15:02 | ||
moritz_ | it would have its arguments's AST, no? | ||
TimToady | no | ||
<infix> only matches the infix operator itself | |||
an infix can set a reducecheck that sees the infixes arguments | |||
but that's called from within the operator precedence parser | 15:03 | ||
so macro infix:<> really needs to run at that moment | |||
sorear | "Current" macros? | 15:04 | |
Does that mean S06, or am I not being as pioneering as I think I am? | |||
TimToady | currently specced | ||
nobody's implemented them yet | |||
macros were the *last* thing on pugs's roadmap | 15:05 | ||
but I've been mistakenly thinking that a user's "macro infix:<op>" translates directly to a grammar's "token infix:sym<op>", but that's not quite so | 15:07 | ||
it needs that to parse the infix, but it needs something like a reducecheck to manage the arguments | |||
15:08
plobsing joined
|
|||
sorear | I'm implementing reader macros, not tree macros | 15:10 | |
TimToady | does that mean "textual" vs "hygienic"? | ||
I'm not familiar with your terminology | |||
sorear | classic lisps have two kinds of macros | 15:11 | |
TimToady | what are you planning to return, a string to be reparsed, or an AST | ||
sorear | reader macros are keyed on the lookahead character - ie they augment a protoregex - they parse (some stuff) and return an AST | ||
15:12
gurjeet left
|
|||
TimToady | and tree macros are for AST transformations? | 15:12 | |
sorear | tree macros exist in ordinary lookup scopes and don't affect parsing at all, but are called later in translation to rewrite a subtree of the parse | ||
15:12
gurjeet joined
15:13
kst left,
k23z__ left
|
|||
TimToady | well, lisp kinda has it easy in the parsing department, generally | 15:13 | |
15:14
kst joined
|
|||
sorear | yes | 15:14 | |
TimToady | so I guess what I'm saying, in those terms, is that what the user thinks of as a simple macro has aspects of both reader macro and tree macro, to interact with OPP successfully | ||
sorear | I'm not concerning myself with anything like a reducecheck, I mean | 15:15 | |
TimToady | reducecheck being a spot to call a tree macro, essentially | ||
sorear | good: I've gotten my macro system to stop crashing. bad: it should be crashing in a different way, but isn't | 15:16 | |
TimToady | well, I'm sayin' that to do successful reader macros in Perl 6, you probably have to be able to fire off a tree macro later, since the reader for infix is not supposed to look for arguments, to the first approximation | ||
lisp gets around this by mostly not having infix operators :) | 15:17 | ||
sorear | \o/ MACROS WORK. | 15:18 | |
TimToady | then I'll have to break them. :) | ||
we wouldn't want jnthn++ and pmichaud++ to feel like they're in an exclusive club now... | 15:19 | ||
moritz_ waits for a timtoadybug in rt | |||
TimToady has lots of bugs, but nobody's offering to debug them for me... | |||
but \o/ too, FSDO \o/ :) | 15:20 | ||
masak | sorear: \o/ | ||
and this now works in a branch in Yapsi: gist.github.com/386409 | |||
\o/ | 15:21 | ||
walk & | |||
dalek | psi: a6ba93b | masak++ | yapsi: [yapsi] make target really case-insensitive |
||
sorear | nqp: foo if 0; | 15:22 | |
p6eval | nqp: ( no output ) | 15:23 | |
sorear | nqp: foo if 1; | ||
p6eval | nqp: ( no output ) | ||
moritz_ | nqp: foo() if 1 | ||
p6eval | nqp: OUTPUT«Could not find non-existent sub foocurrent instr.: '_block11' pc 0 (EVAL_1:6)» | ||
TimToady | sorear: how do your macros interact with grammatical categories? | ||
sorear | macros can be added to any protoregex in the rakudo grammar | 15:24 | |
I've been testing with term:<foo> | |||
TimToady | e.g. can you do a '.WHAT' macro that is only recognized in postfix position? | ||
sorear | maybe | ||
it would have to go on dotty, I think | 15:25 | ||
TimToady | well, terms are easy, so that's a good place to start. :) | ||
but even prefixes and postfixes have to worry about arguments, or at least provide some kind placeholders in the AST for them | |||
maybe that's a viable approach, and a generic reducecheck just pokes the args into the right holes | 15:26 | ||
15:26
justatheory joined
|
|||
TimToady | doesn't work if you want to examine/transform the arg ASTs though | 15:26 | |
sorear | also, macros can't be defined in the setting | 15:27 | |
TimToady | let me be clear that it is a good thing that you are working on this, even if it does cause spec changes :) | ||
I haven't attempted macros in STD yet because I don't actually have a way to eval an AST yet, so your experience is certainly pioneering in that sense. | 15:29 | ||
sorear | nqp: sub foo (*@x) { say(+@x); }; foo("z", |(1 ?? <a b> !! <c>)) | ||
p6eval | nqp: OUTPUT«3» | ||
sorear | nqp: sub foo (*@x) { say(+@x); }; foo("z", |(0 ?? <a b> !! <c>)) | ||
p6eval | nqp: OUTPUT«flattened parameters must be a hash or arraycurrent instr.: '_block11' pc 0 (EVAL_1:5)» | ||
sorear | nqp: sub foo (*@x) { say(+@x); }; foo("z", |(0 ?? <a b> !! <c d e>)) | ||
p6eval | nqp: OUTPUT«4» | ||
sorear | nqp: say(pir::typeof__SP(<>)) | 15:30 | |
p6eval | nqp: OUTPUT«String» | ||
sorear | nqp: say(pir::typeof__SP([])) | ||
p6eval | nqp: OUTPUT«ResizablePMCArray» | ||
moritz_ | TimToady++ # for mostly not using backticks Perl 6 - now can I delimit Perl 6 code with `...` in my custom slide show builder | ||
arnsholt | .u ā | 15:32 | |
phenny | U+0101 LATIN SMALL LETTER A WITH MACRON (ā) | ||
15:32
Trashlord left
|
|||
arnsholt | .u ṇ | 15:33 | |
phenny | U+1E47 LATIN SMALL LETTER N WITH DOT BELOW (ṇ) | ||
15:39
kst left
|
|||
masak | sorear++ # pioneering macros | 15:40 | |
15:40
kst joined
|
|||
moritz_ | btw I'm developing my Perl 6 talk and the software to render it in parallel at github.com/moritz/perltalk | 15:40 | |
(the talk is German, though) | 15:41 | ||
masak | looks cute. | 15:43 | |
the line `swap(my $x = 1, my $y = 3);` is way trippy :P | 15:44 | ||
moritz_: mismatched { on line 145. | 15:45 | ||
and copy-pasted to line 155. | |||
moritz_ | thanks | 15:47 | |
15:48
k23z__ joined
15:50
dju joined
|
|||
sorear | My current patch is only 76 insertions | 15:57 | |
moritz_ always loves it when a patch is insertions-only | 15:58 | ||
it feels the software was extensible enough to allow adding features without removing or changing existing code | |||
sorear | I actually prefer deletion-only patches | ||
moritz_ | maybe it's a stupid sentiment | ||
sorear: well, those are even better, but rare :-) | 15:59 | ||
sorear | Especially when they fix bugs or add features | ||
16:00
tri1 joined
|
|||
pugssvn | r30533 | lwall++ | [S12] delete self:sort darling | 16:07 | |
masak | \o/ | 16:08 | |
moritz_ | another deletion-only patch (apart from updating that stupid Version marker) | 16:09 | |
16:11
dual joined
|
|||
masak uses $obj.*method() for the first time | 16:13 | ||
sorear | ok, I've screwed up scoping somewhere | 16:19 | |
macro bodies cannot see the SETTING | 16:20 | ||
diakopter | oh; who fixed dalek to show yapsi | ||
finanalyst | rakudo: class A { has $.a; has $.b }; my A $x.=new(:a(2),:b(3)); say $x.^attributes | 16:21 | |
p6eval | rakudo c4857a: ( no output ) | ||
moritz_ | that's not a long list. | ||
16:21
fridim left
|
|||
finanalyst | i am trying to list the attributes of a class | 16:21 | |
masak | diakopter: you did... :) | ||
finanalyst | can any one help? | 16:22 | |
JimmyZ | rakudo: Date.^attr.say; | 16:23 | |
p6eval | rakudo c4857a: OUTPUT«Method 'attr' not found for invocant of class ''current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)» | ||
moritz_ | rakudo: say +Date.^attributes | ||
p6eval | rakudo c4857a: OUTPUT«12» | ||
moritz_ | rakudo: .say for Date.^attributes | ||
JimmyZ | rakudo: Date.^attributes.say; | ||
p6eval | rakudo c4857a: OUTPUT«Method 'say' not found for invocant of class 'Attribute'current instr.: '_block51' pc 373 (EVAL_1:152)» | ||
rakudo c4857a: ( no output ) | |||
moritz_ | rakudo: say "$_" for Date.^attributes | 16:24 | |
p6eval | rakudo c4857a: OUTPUT«get_string() not implemented in class 'Attribute'current instr.: '_block51' pc 373 (EVAL_1:152)» | ||
JimmyZ | rakudo: say ~Date.^attributes; | ||
moritz_ | rakudo: say $_.^methods for Date.^attributes | ||
masak | rakudo: class A { has $.a; has $.b }; A.^attributes>>.name.perl.say | ||
p6eval | rakudo c4857a: OUTPUT«get_string() not implemented in class 'Attribute'current instr.: 'perl6;Iterable;Str' pc 453043 (src/gen/core.pir:59265)» | ||
rakudo c4857a: OUTPUT«Method 'methods' not found for invocant of class ''current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)» | |||
rakudo c4857a: OUTPUT«("\$!a", "\$!b", "\$!a", "\$!b", "\$!a", "\$!b")» | |||
masak | finanalyst: that works. | ||
moritz_ | "works" | ||
masak | :) | ||
moritz_ | have you actually looked at the output? | ||
JimmyZ | rakudo: say Date.^attributes>>.name.say; | 16:25 | |
masak | it's... interesting. | ||
p6eval | rakudo c4857a: OUTPUT«$!year$!month$!day$!daycount$!year$!month$!day$!daycount$!year$!month$!day$!daycount1» | ||
sorear | TimToady: One interesting question is, how should quasiquoting interact with parse-time side effects? | ||
moritz_ | oh, that looks much better | ||
masak | it's... comprehensive... | ||
JimmyZ | rakudo: say Date.^attributes>>.name.perl.say; | ||
p6eval | rakudo c4857a: OUTPUT«("\$!year", "\$!month", "\$!day", "\$!daycount", "\$!year", "\$!month", "\$!day", "\$!daycount", "\$!year", "\$!month", "\$!day", "\$!daycount")1» | ||
sorear | TimToady: I speak of stuff like 'has' | ||
masak | why does it repeat itself? | ||
moritz_ | no idea | ||
masak | can I report it? puhleeze? | ||
moritz_ | sure | 16:26 | |
masak | \o/ | ||
masak reports | |||
JimmyZ | rakudo: say +Date.^attributes; | ||
p6eval | rakudo c4857a: OUTPUT«12» | ||
masak | ...wrong by a factor of 3 or so... :P | ||
JimmyZ | rakudo: class A { has $.a; has $.b }; ++A.^attributes | ||
p6eval | rakudo c4857a: OUTPUT«Method 'succ' not found for invocant of class 'Parcel'current instr.: '&prefix:<++>' pc 555891 (src/gen/core.pir:95983)» | ||
moritz_ | but it's consistent with listing each thrice | ||
JimmyZ | rakudo: class A { has $.a; has $.b }; +A.^attributes | ||
p6eval | rakudo c4857a: ( no output ) | ||
JimmyZ | rakudo: class A { has $.a; has $.b }; +A.^attributes.say | 16:27 | |
p6eval | rakudo c4857a: OUTPUT«Use of uninitalized value in numeric context» | ||
JimmyZ | rakudo: class A { has $.a; has $.b }; say +A.^attributes | ||
p6eval | rakudo c4857a: OUTPUT«6» | ||
finanalyst | suppose i instantiate a class, how do I get the current values of the attributes? | 16:28 | |
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say (new A).a | ||
p6eval | rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near ").a"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say (new A)->a | ||
p6eval | rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near ")->a"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
moritz_ | finanalyst: by using an accessor | ||
16:29
christine left
|
|||
moritz_ | finanalyst: obtaining the value via introspection is neither specced nor implemented | 16:29 | |
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say (new A()).a | ||
p6eval | rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).a"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
moritz_ | rakudo++ # good error messag | ||
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say (new A()).a() | ||
p6eval | rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).a()"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
TimToady | sorear: just off the cuff, quasiquoted code has to be considered generic rather like a role body | ||
masak | finanalyst: what is it you're wanting to do? | 16:30 | |
moritz_ | JimmyZ: did you bother to read the error message? | ||
JimmyZ | Yeah | ||
finanalyst | i want to see what the current variables of an instantiate class are | ||
masak | yeah, you said that. | ||
why? | |||
finanalyst | tracing an error | ||
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say (new A()).WHAT | 16:31 | |
p6eval | rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).WHAT"current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)» | ||
JimmyZ | rakudo: class A { has $.a = 2; has $.b }; say A.WHAT | ||
masak | finanalyst: why do you need to do it with introspection, rather than manually? | ||
finanalyst | there are a lot of attributes and putting them in a list seems clunky | ||
p6eval | rakudo c4857a: OUTPUT«A()» | ||
masak | well, using the above .^attributes meta-method, compensating for the triple-bug, and then using eval somehow should work. | 16:33 | |
finanalyst | rakudo: class B {has $.a; has $.b; has $c; method stat { for $.a, $.b, $.c { .say }}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat | ||
p6eval | rakudo c4857a: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)» | ||
finanalyst | rakudo: class B {has $.a; has $.b; has $c; method stat { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat | 16:34 | |
p6eval | rakudo c4857a: OUTPUT«Method 'c' not found for invocant of class 'B'current instr.: 'perl6;B;stat' pc 444 (EVAL_1:180)» | ||
finanalyst | rakudo: class B {has $.a; has $.b; has $c; method stat() { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat | 16:35 | |
p6eval | rakudo c4857a: OUTPUT«Method 'c' not found for invocant of class 'B'current instr.: 'perl6;B;stat' pc 444 (EVAL_1:180)» | ||
masak | missing dot on the $.c attr. | ||
finanalyst | rakudo: class B {has $.a; has $.b; has $.c; method stat() { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat | ||
p6eval | rakudo c4857a: OUTPUT«123» | ||
masak | maybe we should give people an allotted number of p6eval calls per day, so they'll check their spelling better. :P | ||
finanalyst | sory | 16:36 | |
:) | |||
masak | no prob :) | ||
16:36
christine joined
|
|||
masak | today I'm really pot calling kettle black saying that. :) | 16:36 | |
finanalyst | well i was looking for a neater way of doing the .stat method | 16:37 | |
dalek | ok: 1b7c0ce | moritz++ | bin/book-to-latex: [latex] use T1 font encoding, without it Coke++ reported build errors on Mac OS X (ticket #1) |
16:38 | |
ok: 2fb5e20 | moritz++ | README: [README] document that you need the "bera" font to build the book |
|||
masak | rakudo: my $a = q[has $.a]; class A { eval($a) }; say A.^attributes # nope, that didn't work... :) | ||
p6eval | rakudo c4857a: OUTPUT«» | ||
16:41
Truewar left
|
|||
dalek | ok: db59e3e | Coke++ | src/preface.pod: monospace some items. |
16:44 | |
ok: 0ea942a | Coke++ | (2 files): Merge branch 'master' of github.com:perl6/book |
|||
masak | snarkyboojum: ping | 16:46 | |
diakopter | jnthn: Jack Daniels milkshake? | ||
16:50
BrowserUk joined
16:51
p6eval left,
p6eval joined,
BrowserUk left
16:52
pmurias joined
|
|||
pmurias | diakopter: hi | 16:52 | |
diakopter | hi | 16:53 | |
pmurias | how difficult would it be to have access to lexicals by name in perlesque? would it cause a performance penalty? | 16:54 | |
diakopter | how would that be done | 16:55 | |
I mean, how would it look in code | 16:56 | ||
pmurias | where are the lexicals stored in perlesque? | ||
moritz_ | my $foo = 3; my $var = 'foo'; say $::($var) # 3 | 16:57 | |
something like this= | |||
diakopter | oh | ||
not too hard; basically it'd cause a case/switch to be emitted | 16:58 | ||
switch/case I mean | |||
sigh. | |||
masak | given/when :) | 16:59 | |
diakopter | technically, neither; it's just a CIL "switch" statement, and there aren't "case" statements; it's just a bunch of conditions and gotos | 17:00 | |
actually for strings, it's not even a switch statement | |||
only for a dense zero-indexed array of ints does it get transformed to a jump table | |||
masak | *nod* | 17:01 | |
pmurias | diakopter: how should mildew determine where Sprixel is localted? | 17:03 | |
diakopter | I dunno.. | 17:04 | |
17:04
sorear left
|
|||
pmurias | env variable could work on linux... | 17:04 | |
diakopter | however it wants? it could always svn co it if it's not there, like --gen-parrot except --gen-perlesque | ||
17:05
sorear joined
|
|||
diakopter | obviously svn and mono are dependencies of that | 17:05 | |
JimmyZ | rakudo: my $a; say $a[0]; say $a[0]; | ||
p6eval | rakudo c4857a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''current instr.: '!postcircumfix:<[ ]>' pc 10885 (src/builtins/Role.pir:73)» | ||
JimmyZ | rakudo: my Array $a; say $a[0]; say $a[0]; | ||
p6eval | rakudo c4857a: OUTPUT«» | ||
JimmyZ | rakudo: my Array $a; say $a[3]; say $a[3]; | 17:06 | |
p6eval | rakudo c4857a: OUTPUT«» | ||
JimmyZ | rakudo: my Array $a; $a[3]; say $a[3]; | ||
p6eval | rakudo c4857a: OUTPUT«» | ||
JimmyZ | rakudo: my Array $a; my $b = $a[3]; say $a[3]; | ||
p6eval | rakudo c4857a: OUTPUT«» | ||
diakopter | rakudo: my Array of Array of Array $a; say $a[3]; say $a[3]; | ||
p6eval | rakudo c4857a: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are::(Mu : Int $i;; *%_):(Mu : Block $b;; *%_):(Mu : !whatever_dispatch_helper ;; *%_)current instr.: '_block14' pc 29 (EVAL_1:0)» | ||
diakopter | rakudo: my Array of Array $a; say $a[3]; say $a[3]; | 17:07 | |
17:07
pmurias left
|
|||
p6eval | rakudo c4857a: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are::(Mu : Int $i;; *%_):(Mu : Block $b;; *%_):(Mu : !whatever_dispatch_helper ;; *%_)current instr.: '_block14' pc 29 (EVAL_1:0)» | 17:07 | |
moritz_ | rakudo: my Array @a; say @a[0] | 17:09 | |
p6eval | rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)» | ||
17:09
tri2 joined,
tri1 left
|
|||
diakopter | phenny: tell pmurias I mean, since it takes less than 10 seconds to build Sprixel.exe .... --gen-perlesque would go quite quickly :) | 17:13 | |
phenny | diakopter: I'll pass that on when pmurias is around. | ||
17:14
M_o_C left
|
|||
JimmyZ | rakudo: my Array $a = [1]; my $b = $a[3]; say $a[3]; | 17:14 | |
p6eval | rakudo c4857a: OUTPUT«» | ||
JimmyZ | rakudo: my Array @a = [1]; my $b = @a[3]; say @a[3]; | 17:15 | |
p6eval | rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)» | ||
JimmyZ | rakudo: my Array @a = [1]; my $b = @a[1]; say @a[1]; | ||
p6eval | rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)» | ||
masak | hm. | ||
JimmyZ | parrot bug? | 17:16 | |
masak | JimmyZ: when you do `my Array @a`, you get an Array typed as containing only Arrays. | ||
JimmyZ | rakudo: my Array $a = [1]; my $b = $a[3]; say $a[3]; | ||
p6eval | rakudo c4857a: OUTPUT«» | ||
masak | that doesn't seem to be related to the error you get, though. | ||
moritz_ | masak: yes, the error should be a type mismatch | 17:17 | |
JimmyZ | rakudo: my Array $a = [1]; my $b = $a[0]; say $a[0]; | ||
p6eval | rakudo c4857a: OUTPUT«1» | ||
JimmyZ | rakudo: my Hash $a = [1]; my $b = $a[0]; say $a[0]; | ||
p6eval | rakudo c4857a: OUTPUT«Type check failed for assignmentcurrent instr.: '&die' pc 17391 (src/builtins/Junction.pir:410)» | ||
JimmyZ | good ninght | 17:19 | |
17:19
JimmyZ left
17:20
tri1 joined
17:21
tri2 left
|
|||
masak | good night, 卓明亮! | 17:24 | |
17:26
tri1 left
17:28
plobsing left
17:31
envi^home left
17:34
tri1 joined
|
|||
dalek | psi: 830b6a2 | masak++ | lib/Yapsi.pm: [Yapsi] expose the runtime state a bit more in order to register the state at each tick. The four calls to self.*tick (beginning of program, after assignment, after binding, after call to &say) are in a way arbitrary, but it's the best guess we have right now as to what a debugger needs. The reason we use a * rather than a ? in the call is so that many deriving classes will be able to have their .tick method invoked. Will be interesting to see if that distinction will actually be important to someone. |
17:38 | |
masak | phenny: tell snarkyboojum that Yapsi is now, finally, ready for Tardis. here's a proof-of-concept: gist.github.com/386512 | ||
phenny | masak: I'll pass that on when snarkyboojum is around. | ||
17:40
tri2 joined
17:41
tri1 left
17:45
tri2 left,
tri1 joined
17:58
tri1 left
18:02
TiMBuS joined
|
|||
finanalyst | rakudo: my $s="a\tb\tc"; my @a= $s.split("\t")[1 .. *-1]; .say for @a | 18:04 | |
p6eval | rakudo c4857a: ( no output ) | ||
finanalyst | alpha: my $s="a\tb\tc"; my @a= $s.split("\t")[1 .. *-1]; .say for @a | ||
p6eval | alpha 30e0ed: OUTPUT«bc» | ||
18:08
wknight8111 left
18:13
mikehh_ joined
18:14
mikehh left
18:17
M_o_C joined
|
|||
masak | time to nom. will be back later tonight to release Yapsi. :) | 18:19 | |
18:19
masak left
18:21
M_o_C left
18:25
k23z__ left
18:35
sorear left
18:36
sorear joined
18:41
Minimiscience joined
18:42
M_o_C joined
|
|||
colomon | finanalyst: I'm pretty sure [1 .. * - 1] is a non-starter. | 18:50 | |
finanalyst | has it been eliminated from spec? | 18:51 | |
colomon | was it ever in the spec? | ||
finanalyst | it used to work | ||
* in [] context was the same as +@ | 18:52 | ||
colomon | still is, except it's not a context. | ||
18:52
kst left
|
|||
finanalyst | although in most case +@array is possible, the problem occurs when you dont know the name of the array | 18:53 | |
colomon | but I don't think you can combine that with a Range. | ||
18:53
kst joined
|
|||
finanalyst | 'context' in loose meaning of word | 18:53 | |
colomon | (I could be wrong, however.) | ||
finanalyst | I am not suggesting any design ideas. More a question of how to get the last element in an array | 18:54 | |
colomon | I guess it could be possible that the whatever curry is somehow passed to the Range, but that sounds like a lot of magic. | ||
oh! | |||
I should have seen that right away, apologies. | 18:55 | ||
if you want to get everything but the first element, it's [1..*] | |||
finanalyst | you have lost me already | ||
colomon | except that doesn't work in master yet. | ||
if you just want to get the last element [*-1] should work. | |||
finanalyst | in alpha you could not use [1..*] | 18:56 | |
may be [ 1 ..^ * ] | |||
colomon | [1..*] is correct, I'm pretty sure. | 18:57 | |
There's two different uses of * overlapping here. | |||
finanalyst | alpha: my @x=1,2,3,4; .say for @x[1..*] | 18:58 | |
p6eval | alpha 30e0ed: OUTPUT«234Use of uninitialized value» | ||
18:58
Metamucil left
|
|||
finanalyst | alpha: my @x=1,2,3,4; .say for @x[1..*-1] | 18:58 | |
p6eval | alpha 30e0ed: OUTPUT«234» | ||
finanalyst | colomon: the uninitialised slot is why [ 1 .. *-1] is needed | 18:59 | |
colomon | finanalyst: no | ||
alpha is wrong here. | |||
finanalyst | ah. | ||
much neater of course without -1 | |||
colomon | basically (as I understand it) there are two different things going on here with *. | 19:01 | |
when you say [*-1], what happens is it generates a block of code which looks something like -> $a { $a - 1 } | |||
then the [ ] passes in the length of the array as $a. | |||
but when you're doing slices [1..*] is supposed to mean, "give me all the elements starting with one and ending when we run out." | 19:02 | ||
likewise if you say [*], that just means "all the elements". | |||
finanalyst | so alpha got it wrong because it wasnt lazy? | 19:03 | |
colomon | I think it was just an alpha bug | ||
19:03
M_o_C left
|
|||
finanalyst | thanx for the explanation | 19:03 | |
colomon | I guess it is possible that [1 .. *-1] might automatically do the right thing. But if it does, it's because 1 .. *-1 will somehow make a function that does -> $a { 1 .. ($a - 1) } | 19:04 | |
alpha: my &a = 1 .. (*-1); say &a; | 19:06 | ||
p6eval | alpha 30e0ed: OUTPUT«!whatever_closure» | ||
colomon | ah. | ||
so it actually was doing the right thing there. alpha++ | |||
19:07
pmurias joined
|
|||
colomon | alpha: my &a = 1 .. (*-1); say &a(10); | 19:07 | |
p6eval | alpha 30e0ed: OUTPUT«123456789» | ||
pmurias | diakopter: rehi | ||
phenny | pmurias: 17:13Z <diakopter> tell pmurias I mean, since it takes less than 10 seconds to build Sprixel.exe .... --gen-perlesque would go quite quickly :) | ||
diakopter | pmurias: hi | ||
pmurias: I'm fixing subs-as-variables, which already bitrotted | |||
colomon | finanalyst: but [1..*] is supposed to work, definitely. | ||
finanalyst | but it doesnt yet | 19:08 | |
colomon doesn't want to think about the level of complexity involved in getting 1 .. *-1 to automatically do the right thing... | |||
pmurias | diakopter: write some tests to make sure they won't bitrot again | ||
diakopter | pmurias: :P | 19:16 | |
sigh. I just realized I *must* do the per-callsite return-slot thing. :| | 19:18 | ||
diakopter gets to it. | 19:19 | ||
19:24
BrowserUk joined,
BrowserUk left
19:26
finanalyst left
19:27
wolverian left
|
|||
pugssvn | r30534 | pmurias++ | [mildew] submolds in m0ld | 19:28 | |
r30535 | pmurias++ | [mildew] m0ld supports comments and call with no arguments | |||
r30536 | pmurias++ | [mildew] -Bperlesque | |||
pmurias | diakopter: what could be interesting would be to see what does it take to get mildew to run on your box (perlesque backend only with SMOP etc.) | 19:30 | |
19:31
rv2733 left
|
|||
lue | o hai! I was wondering if (other than the spec of course) there is a place where I can learn about P6 classes | 19:37 | |
I've read the spec, but something more tutorial-oriented would be nice :) | 19:38 | ||
moritz_ | lue: like, the book? | 19:39 | |
Minimiscience | perlgeek.de/blog-en/perl-5-to-6/05-...asses.html and others on that site are the only Perl 6 class tutorials I know of. | 19:40 | |
lue | what book? I've checked perl6.org, nothing _too_ useful there :) | ||
moritz_ | github.com/perl6/book/blob/master/s...bjects.pod | ||
lue | dankon! | 19:42 | |
19:42
mce_ro joined
|
|||
diakopter | pmurias: one change starting today is that every subroutines (named or anonymous) must declare each's return type up-front | 19:43 | |
(sorry :() | |||
lue | really, the part where I'm stumbling is the purpose of bless. I don't think I've ever had to use something like it in, say, Python 3. (I could be wrong of course) | ||
from what I know, the purpose of bless() is to call that object's BUILD method. I still can't quite see why I'd want to use bless() though. | 19:47 | ||
(I can post what I'm trying to do to lisppaste if that would help) | |||
Su-Shee | lue: the last perl 6 class I wrote didn't require blessing. | 19:48 | |
19:48
colomon left
|
|||
lue | what would you use it for though? | 19:48 | |
Su-Shee | I wouldn't. I use it in perl 5. | ||
I didn't even know that there still _is_ bless. | 19:49 | ||
lue | what would you use bless for in P5 then? I know P5 hasn't got expansive class support. | ||
pmurias | diakopter: that's not a problem for me | ||
lue: MooseX::Declare is pretty good | 19:50 | ||
Su-Shee | lue: that you'll find in any perl book explained in detail. what are you asking exactly? | ||
19:51
mikehh_ is now known as mikehh
|
|||
diakopter | Su-Shee: lue was trying to understand Perl 6 bless | 19:51 | |
oh. | |||
Su-Shee | diakopter: there still is a bless? | ||
diakopter | lue: yes :) nopaste your code please | ||
moritz_ | Su-Shee: yes | ||
diakopter | Su-Shee: apparently, according to github.com/perl6/book/blob/master/s...bjects.pod | ||
bkeeler | bless associates a reference with a package so that it knows where to find methods when you call them | ||
moritz_ | perlgeek.de/blog-en/perl-6/object-c...ation.html | ||
Su-Shee | ok, then I have absolutely no idea what bless in p6 is for. | 19:52 | |
lue | it's Python code, and I'm trying to convert to P6. I need to know of classes first though (just a second) | ||
bkeeler | You roll your own constructors in P5, something like "sub new { my $package = shift; bless {} => $package }" | ||
diakopter | github.com/perl6/book/blob/master/s...bjects.pod is confusing | ||
moritz_ | diakopter: how so? | ||
diakopter | "Perl 6 constructors actually create of the object themselves" | ||
19:52
sorear left
|
|||
bkeeler | It still exists in P6, but the metamodel provides a default constructor so you don't need to muck around with bless | 19:52 | |
diakopter | moritz_: the Constructors section says "The example's constructor ..." | 19:53 | |
but I don't see a constructor in an example | |||
oh. I have to view it in raw :) | 19:54 | ||
moritz_ | diakopter: ah, github doesn't render PseudoPod very well | ||
lisppaste3 | lue pasted "Incomplete NES cpu class (python)" at paste.lisp.org/display/98645 | ||
diakopter | moritz_: also, "is that rather than setting up state on a somehow | ||
.. already magically created object" | |||
.. | |||
Su-Shee | ok, I don't understand the explanation in the book as well. | ||
Khisanth | Su-Shee: but is there a damn()? :) | ||
diakopter | doesn't seem clear when there's a "self" keyword in the new method | 19:55 | |
lue | there you are, that's it. :) | ||
moritz_ | did you find my blog post clearer? | ||
Su-Shee | lue: anyway. I've never needed a p6 bless until now as I didn't even know that it existed. I already abandoned bless mentally. | ||
lue | mortiz_: yes. As I said, it's really only bless() I was wondering about. Glad I probably won't need to use it :) | 19:56 | |
diakopter | moritz_: no, not really | 19:57 | |
b/c "p6opaque" is not explained | |||
moritz_ | then I don't write diakopter-compatbile docs, it seems | ||
19:58
sorear joined
|
|||
Su-Shee | I don't get it as well. I could use it, but I don't understand its usefulness and purpose. | 19:58 | |
diakopter | I suspect that's not the problem. I think the concepts are complicated. | 19:59 | |
moritz_ doesn't understand all that confusion | |||
somehow new objects need to be created | 20:00 | ||
that's what bless does | |||
diakopter | can there be multiple new methods with different signatures? | ||
moritz_ | diakopter: sure - they can be multi methods | ||
Su-Shee | moritz_: I thought that's what I have new for which is builtin? why would I need bless then? | ||
lue | .oO(wow, looking back, I can't believe I wrote all that at one time: paste.lisp.org/display/98645) |
20:01 | |
diakopter | how does one avoid parent class(es)' BUILD methods from also calling bless? | ||
moritz_ | diakopter: bless calls BUILD, not the other way round | ||
TimToady | BUILD methods never call bless | ||
moritz_ | diakopter: if a BULID method calls bless, it's b0rked | ||
TimToady | bless actually calls BUILDALL, which calls all appropriate BUILDs | 20:02 | |
similary for DESTROYALL | |||
moritz_ | ... as I explained in the blog post, if I remember correctly | ||
TimToady | *larly | ||
diakopter | ok; I couldn't make it past the opaque mention of p6opaque | 20:03 | |
moritz_ | diakopter: how do you ever manage to read parts of the spec if you don's skip things you don't understand? :-) | ||
diakopter | where is bless' signature described | ||
TimToady | Khisanth: 'damn' is the name of the garbage collector | ||
lue | So, just plug in methods/submethods appropriately, and come back when it breaks? :) | 20:05 | |
diakopter | moritz_: did you notice the book typo I quoted above? | ||
TimToady | S12:736 | ||
moritz_ | diakopter: yes | ||
diakopter: I actually wanted to push a change, but forgot to enter the password | |||
TimToady | bbl & | ||
20:07
masak joined
|
|||
Su-Shee | lue: a handful of accessors usally is nice as well. and then people like me are usally done with their classes. ;) | 20:07 | |
masak | ahoy, perl6beings! | ||
masak enters Yapsi release engineering mode | |||
lue | ah yes, must allow people to touch my classes ;) [lookee at paste.lisp.org/display/98645 and see if there's any other advice you can give me] | ||
masak: ohai! | 20:08 | ||
masak | olue! | ||
lue enters TARDIS anticipation mode | |||
masak | lue: did you see the proof-of-concept gist I pasted earlier? | ||
lue | yes, looked at it. that's why I'm suddenly interested in Yapsi ;) | 20:09 | |
masak | Tardis has been the main driver of Yapsi development for the past month, just to get to this point :) | 20:10 | |
next month will probably be more sigmund-oriented. | |||
lue | Tardis will be the only interactive debugger I'll ever use. (I'm assuming it keeps the name then?) | 20:11 | |
masak | yeah, I haven't seen any better name on the horizon :) | 20:12 | |
20:13
Minimiscience left
|
|||
lue | what does it stand for? I still like something along the lines of Time-Augmented Realistic Debugging In Style (or something of the sort) | 20:13 | |
masak | lue: see the README. | 20:14 | |
lue: are you satisfied with the explanations you got about bless? otherwise I could have a go. I use bless quite often. | 20:17 | ||
Su-Shee | and me idiot thought the whole point was not to have doing bless anymore.. ;) | 20:18 | |
20:18
kst left
|
|||
masak | Su-Shee: in the common case, you don't. | 20:19 | |
moritz_ | Su-Shee: having the object creation facility in bless and not new() makes it easy to hide the built-in new() | ||
20:19
kst joined
|
|||
masak | programming is like an onion, it has layers. :) | 20:19 | |
lue | check out my lisppaste and tell me if I would need it: paste.lisp.org/display/98645 | 20:20 | |
masak checks | |||
dalek | ok: 8e36bf7 | moritz++ | src/classes-and-objects.pod: grammar fix pointed out by diakopter++ |
||
lue | so, bless is to let everybody know your package exists and where it is. | ||
Su-Shee | moritz_: so far I already understood. I don't understand what's it good for. but I'm not the audience anyway. | 20:21 | |
masak | lue: er, that's python, as far as I can see. | ||
also, it triggered my tl;dr filter. | |||
sorry. :/ | |||
Su-Shee | lue: is that assembler in python? ;) | ||
lue | yes, it's python. I'm porting to Perl 6 | 20:22 | |
that thing is the reason why I switched: refereneces (@a := @b) and switch statements | 20:23 | ||
Su-Shee: it's a 2A03 cpu emulator :) | |||
Su-Shee | .oO(so essentially yes.. ;) |
||
lue | all the #NOTE WARNING CAUTION stuff is because kate highlights those kinds of words as bold red, and I wanted them to stand out. | 20:24 | |
.oO(Practical Emulation of Rudimentary Languages) |
20:25 | ||
dalek | psi: c92d82d | masak++ | README: [README] updated |
20:26 | |
20:26
colomon joined
20:29
stepnem joined
|
|||
moritz_ | rakudo: / \w+ ** \. / | 20:33 | |
p6eval | rakudo c4857a: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'current instr.: 'perl6;Regex;P6Regex;Actions;_block554' pc 29649 (ext/nqp-rx/src/stage0/P6Regex-s0.pir:8431)» | ||
moritz_ | rakudo: / a+ +/ | 20:34 | |
p6eval | rakudo c4857a: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'current instr.: 'perl6;Regex;P6Regex;Actions;_block554' pc 29649 (ext/nqp-rx/src/stage0/P6Regex-s0.pir:8431)» | ||
moritz_ | masak: care to submit? | ||
masak submits rakudobug | |||
moritz_ | error while trying to produce an error message, it seems | ||
masak | how meta. | ||
why does the first one try to produce an error message? | 20:35 | ||
it looks alright to me. | |||
moritz_ | because it's a quantifier on a quantifier | ||
masak | ...and? | ||
alpha: / \w+ ** \. /; say "alive" | 20:36 | ||
p6eval | alpha 30e0ed: OUTPUT«alive» | ||
masak | std: / \w+ ** \. / | ||
moritz_ | std: / \w+ ** \. / | ||
p6eval | std 30536: OUTPUT«===SORRY!===quantifier quantifies nothing at /tmp/qX02jGN3T7 line 1:------> / \w+ ** \. ⏏/Check failedFAILED 00:01 111m» | ||
std 30536: OUTPUT«===SORRY!===quantifier quantifies nothing at /tmp/Aj8Op1qPtv line 1:------> / \w+ ** \. ⏏/Check failedFAILED 00:01 108m» | |||
masak chooses not to believe STD in this case | |||
a ** quantifier on a + quantifier is totally OK. | |||
I've even used it at times. | |||
the \w+ effectively produces a higher-order term, which can be quantified. | 20:37 | ||
jnthn | Evening hackathon! :-) | ||
masak | \o/ | ||
colomon | I've got ten free minutes before I've got to start cooking dinner.... | ||
masak | jnthn: Yapsi release imminent! | ||
colomon | :) | ||
\o/ | 20:38 | ||
pmurias | TimToady: any ideas how a CPANised module should use STD? | ||
dalek | psi: b9ccde1 | masak++ | doc/ChangeLog: [ChangeLog] added changes for May release |
||
20:38
Su-Shee left
|
|||
jnthn | masak: Yay :-) | 20:39 | |
BTW, Iceland is awesome. :-) | |||
colomon | \o/ | ||
masak | how was Eyafjallajökull? | 20:40 | |
jnthn | I got a look at That Volcano (from a distance) today. | ||
diakopter | pmurias: depend on svn and check it out? :P | ||
pmurias | jnthn: what are you doing on Iceland? | ||
jnthn | pmurias: Relaxing, and occasionally doing Perl 6 things. | ||
And drinking beer. | |||
lue remembers his favorite (american) morning radio show selling "I Hate Iceland" tshirts | 20:41 | ||
jnthn | Overall, just a week of fun. :-) | ||
pmurias | jnthn: did you meet with avar? | 20:42 | |
20:42
Guest62733 left
20:48
BrowserUk joined
20:55
BrowserUk left
20:56
colomon left,
meppl left
21:00
orafu left
21:01
orafu joined
21:04
wolverian joined
21:21
nadim left
|
|||
lue | grr... You know that measurement of console screens back in ye olde days? 80xtwenty-something. I can remember 80, but what was the other dimension? | 21:23 | |
masak | 25. | ||
moritz_ | 24 | 21:25 | |
well, depends I think | |||
dalek | psi: 9a0a096 | masak++ | doc/announce/2010.05: [doc/announce/2010.05] added May announcement |
||
lue | I first got it from when the Infocom setup disks ask for your resolution :) | ||
masak | I'll be happy to receive comments on the release announcement. | 21:26 | |
will release in a few minutes. :) | |||
moritz_ reads | |||
21:26
pmurias left
|
|||
lue | +Yapsi is an 'official and complete' Perl 6 release. It's official because we | 21:27 | |
13 | |||
+have little labels with the word 'official' on them that we glue to each | |||
14 | |||
+download that takes off from github. (That much gluing takes a lot of work, | |||
15 | |||
+but we think of it as a community service.) | |||
masak | we do. | ||
lue | (sorry about the weird pasting) that's my favorite line :) | ||
masak | :) | 21:28 | |
moritz_ likes the Schadenfreude | |||
masak | thought you would :) | 21:29 | |
moritz_ | masak++ | ||
masak | hokay, going into release mode, then. | ||
lue | that looks german and I can't understand it! (Schadenfreude) | ||
masak | lue: delight at the misery of others. | ||
lue: 'Schade' means 'hurt', IIUC. 'freude' means 'joy'. | 21:30 | ||
but IANAG. | |||
lue | they sounded familiar (but I was only in Germany until I was 4 or 5) | ||
moritz_ | actually Schaden = damage | 21:32 | |
masak | ah. | ||
wtf Yapsi 2010.04 109 downloads! o.O | 21:33 | ||
no wonder we had to order more 'official' stickers. | |||
moritz_ | :-) | 21:34 | |
lue | so Yapsi basically takes a shortcut while calling the turtle (er, rakudo) for some help on being an interpreter? | 21:35 | |
21:35
nadim joined
|
|||
s1n | masak: by complete, does yapsi pass tests? | 21:35 | |
masak | s1n: yes. not spectests yet, though. | ||
but we have tests. | 21:36 | ||
s1n | interesting | ||
masak | lue: if I understand you correctly, then no. | ||
lue | My metaphor was «trying» to say that Yapsi gets help from rakudo to be a perl6 interpreter written in perl6. | 21:37 | |
masak | should a release announcement go to both p6c and p6l, or just the one? | ||
lue: it does that, yes. and if anything deserves the eponym 'turtle' it's Yapsi. | |||
lue receives -3 Cape of Failed Metaphor | |||
masak | lue: you should try it; it's dazzlingly slow :) | ||
lue | more than rakudo? Imp(robable|ossible)! | 21:38 | |
s1n | masak: does yapsi reuse rakudo's built-in's or does it provide its own? | ||
wolverian | masak: s/an server/a server/ | ||
masak | s1n: depends what you mean. there's no way to do 'print' except with 'print', for example. | 21:39 | |
wolverian: thanks! saved at the last minute. :) | |||
wolverian | is the "SIC seceral" on purpose? | ||
too punny to know. :) | 21:40 | ||
masak | good question. no :) | ||
these fixes will go in post-release, since I've already uploaded the .tar.gz. | |||
but I hadn't sent the announcement yet, so that will look right. | |||
lue | rakudo: say "\x26B0 is a coffin, \x26B1 is a funeral urn. Who'd thought those'd be in Unicode?" | ||
p6eval | rakudo c4857a: OUTPUT«⚰ is a coffin, ⚱ is a funeral urn. Who'd thought those'd be in Unicode?» | ||
masak goes with just p6c, like last time | 21:41 | ||
s1n | masak: does it reuse rakudo's List, for example, or did you write your own? | ||
masak | so far, neither. | ||
s1n | oh | ||
masak | it's complete, not finished :P | ||
s1n | lol | 21:42 | |
fast and loose with that word | |||
i read "complete" as "feature complete" | |||
masak | it is feature complete. | 21:43 | |
...for a very restricted set of features. | |||
s1n | i don't think that's a good choice of words, very misleading | 21:45 | |
masak | hm. you might be right. | 21:47 | |
people might think it's actually complete... | |||
ah well, announcement's away already. too late to change it. :) | |||
s1n: tell you what. if people turn up and say they expected complete to mean 'complete', they'll get a full refund. | 21:49 | ||
that way, we get both the branding *and* happy customers! | 21:50 | ||
lue | .oO(do they get to keep the «OFFICIAL» sticker, ABSOLUTELY FREE!?) |
||
.oO(our gift to you!(?)) |
21:51 | ||
masak | heh. chromatic already tweeted about Yapsi being 'official and complete' :) | 21:52 | |
and it's getting re-tweets. o.O | 21:53 | ||
masak hides | |||
lue | quick! use these array sigils as covers. If you need more, you can them from twitter! | 21:54 | |
can *get* them | |||
21:55
donaldh joined
|
|||
lue | .rpg(masak receives +10 Blanket of Arrays) | 21:55 | |
s1n | i'd rather have the Socket of Escape :) | 21:56 | |
s1n is so glad to be done of coursework | 21:57 | ||
masak | lue: have I mentioned that I'm considering doing a one-month blog experiment this summer, implementing an adventure game in Perl 6? | ||
wolverian | masak: zorkesque? | ||
lue | yay! I was thinking of a text game about #perl6 | ||
Couldn't decide between P6 and Inform though :) | 21:58 | ||
masak | the idea is to take the successes of the Perl 6 Advent Calendar, and do a similar thing in the summer. | ||
getting people involved and taking turns blogging, etc. | |||
lue gives masak +42 ^C | |||
masak | question is how to co-ordinate it, though. since things will build on each other in a way the Advent postings mostly didn't. | 21:59 | |
lue | when would it start? I'd love to help with an adventure game. | ||
masak | probably needs a bit more up-front planning. | ||
lue: it starts when someone creates a github repo for it :) | |||
lue | masak: if it weren't so slow for me, I'd recommend Bespin | ||
pugssvn | r30537 | jnthn++ | [t/spec] Tests for inheritance and role composition involving lexical roles/classes. | ||
jnthn | Meh, this connection sucks. | ||
lue | if you were thinking of 2+ editing the same file at the same time, that is. | 22:00 | |
ohai jnthn o/ | |||
masak | lue: oh, cool. didn't know about that. | ||
I don't do realtime multiplayer editing often enough. | 22:01 | ||
lue | I don't either, bespin is painfully slow for me :( | 22:02 | |
22:02
donaldh left
|
|||
lue | not painful, but not easy-to-use either | 22:02 | |
lue gives jnthn +5 (ATK) T1 line | |||
dalek | kudo: 78fb4ec | jonathan++ | src/Perl6/Actions.pm: Fix inheritance and doing of lexical classes / roles. |
22:03 | |
kudo: db73c1f | jonathan++ | src/Perl6/Compiler/Package.pm: Fix declaring multiple lexical classes in a given scope. |
|||
masak | lue: did you know about svn.pugscode.org/pugs/examples/adve...venture.pl ? | 22:04 | |
eternaleye | lue: re bespin, there's always Gobby/Kobby/Infinote, or Wave, or the etherpad-based options @ etherpad.org/etherpadsites.html | 22:06 | |
The former have the benefit of being native apps, whereas the latter two are AJAX | 22:07 | ||
22:10
wolv joined
|
|||
s1n | masak: are you really in an optics phd program? | 22:10 | |
masak | s1n: nope. | ||
s1n | oops | ||
moritz_ | 22:11 | ||
22:11
kfo_ joined
|
|||
s1n | (i always mix your names up lol) | 22:11 | |
lue | no i did not, masak | 22:13 | |
masak | I think at one point it worked in Rakudo. | ||
22:14
kfo left,
kfo_ is now known as kfo
|
|||
dalek | kudo: a38bf7e | jonathan++ | docs/ROADMAP: Lexical classes now essentially work and are tested. We'll no doubt find bugs, but I the bulk of the work is done, so move them to completed section of the ROADMAP. |
22:14 | |
lue | It looks OK, but methinks it could be better (of course) | ||
masak | indeed. | 22:15 | |
lue | I like Inform for this kind of stuff, because it was _made_ for this kind of stuff. | ||
masak | still, one has to start somewhere, even with something ambitious. | ||
jnthn | That's a "must have" roadmap item knocked off. :-) | 22:16 | |
lue | If you like, I could relearn Inform (again) and draft an idea for the game. | ||
jnthn++ \o/ :D \o\ /o/ ba-da-da-daaa! | |||
diakopter | um, yay. :) | 22:17 | |
masak | jnthn++ | ||
lue: sure. but I guess you are aware that I do plan to use Perl 6 as a platform, not Inform :) | 22:18 | ||
lue | oh, I read that as "The must have roadmap section knocked off" | ||
jnthn | lue: If only! | ||
lue | masak: of course, it's not much of PoC code if it weren't in P6 :) | ||
22:18
nihiliad left
|
|||
lue | I also have to feel like relearning Inform again. I always learn it for a bit, then forget everything, | 22:19 | |
it's worth it to just jump straight to P6. | |||
masak | the fact that Inform was made for this type of thing only means that we have to find an angle for the game such that Inform would be a bad fit, and Perl 6 a good one. | ||
lue | anything involving file IO is a good start :P | 22:21 | |
masak | good to know. | 22:22 | |
and by that time, we might have binary IO... | |||
dalek | meta: r234 | diakopter++ | trunk/Sprixel/ (9 files): [perlesque] redo a lot about sub declarations, named and anonymous, so that a |
||
lue | (I guess online MUD type stuff is theoretically possible in Inform (last I checked), but P6 would obviously be better) | ||
Inform can load modules and images and such, but I don't recall it ever opening any files you want, like the open() command. | 22:23 | ||
diakopter | and, once again, bugs in mono. | ||
22:24
iblechbot left
|
|||
masak | lue: hm. I'm reluctant to go in the MUD direction, at least as a first attempt. | 22:24 | |
a MUD is a bit too open-ended to work well as a tutorial. | |||
lue | yeah, well, just a thought :) | 22:25 | |
lue checks up on inform7 to see what it's not good at | 22:27 | ||
jnthn will be hackathoning tomorrow :-) | |||
eternaleye | lue: masak: Maybe a roguelike? It would involve goodly amounts of file IO to remember and restore levels, and we could make a really neat run-length-encoding sub ;D | 22:28 | |
masak | eternaleye: interesting. | ||
eternaleye: Tene++ has already started on one, I believe. | |||
eternaleye | Ooh, must see... | ||
masak | github.com/tene/cutegirls | ||
lue | .oO(nethack!) |
||
eternaleye | Hm, it's p5 with some perl6 in via modules | 22:29 | |
lue | a programming language like Inform 7 seems right up TimToady's alley... | 22:31 | |
eternaleye | Also, multiplayer may be complicating things too much - most roguelikes are single-player, and turn-based systems tend not to scale well with increased players (one walks away -> hang) | ||
22:31
colomon joined
|
|||
masak | eternaleye: aye. I think single-player is a must. | 22:32 | |
dalek | meta: r235 | diakopter++ | trunk/Sprixel/src/Grammar/Grammar.cs: [perlesque] try to fix usage on mono. |
||
eternaleye | Well, since use :from<p5> is working now, we could use the p5 ncurses bindings | 22:33 | |
masak | eternaleye: not sure what Tene's long-term plans were. maybe he intended to port it all to Perl 6 when possible. | ||
eternaleye | masak: Could be | ||
lue can't wait for the day you can use the qt libraries | |||
eternaleye | That would be very shiny indeed | ||
22:35
plobsing joined
|
|||
lue | one idea would be to set up a system where you could download extra areas (a more dynamic game) | 22:37 | |
of course, that departs from your standard Infocom text game :) | |||
masak | maybe the place to start is to brainstorm over a 'conceptual design'... making the text-adventure game 'artwork' up front. | 22:44 | |
with a solid core idea, it's easier to build towards a goal. | 22:45 | ||
lue | agreed | ||
I wonder when/where to brainstorm, though | 22:48 | ||
masak | needn't be complicated. some day we'll make ourselves a channel and start it. :) | ||
not tonight, though. | |||
22:49
nadim_ joined
22:50
nadim left
|
|||
lue | of course not, a new doctor who comes on in a couple hours :P | 22:55 | |
masak | :) | ||
let's keep it in the back of our minds for some time. | 22:56 | ||
lue thinks of creating the #rakudodeathstar channel for things like #rs that aren't appropos for #rs | 23:00 | ||
masak | that's not a channel, it's a space station! | 23:03 | |
lue | the IRC channel for the space station of course :) | 23:04 | |
sbp | I love how the most recent change message for cutegirls is "A few minor visual improvements" | 23:06 | |
masak | even cuter, in other words. :) | ||
lue | masak: of course, the perfect virtual representation of Rdie* would be a MUD ;) | ||
23:11
patrickas joined
23:12
nadim_ left
23:13
mce_ro left
|
|||
dalek | meta: r236 | diakopter++ | trunk/Sprixel/ (5 files): [perlesque] more fixes for mono, hopefully. |
23:16 | |
23:16
justatheory left
23:27
patrickas left
23:38
astrojp joined
23:50
wknight8111 joined
23:53
masak left
|