svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | dev.pugscode.org/
Set by putter on 11 February 2007.
putter 7k hours. It would be so nice to have it be *this* xmas. 00:00
btw, a while back you "complained" about ticket bot spam. not sure if you were serious. I actually thought it was kind of cute. showed tracker actually being used (which in so many foss projects they're dead) 00:02
err, ticket system is dead. got started, never caught on, accumulated drift of unmanaged cruft. 00:03
audreyt hm? 00:04
specbot6 r14329 | larry++ | Whack in rethink of caller/context
svnbot6 r15559 | audreyt++ | * zip.t - fix old Yen usage
audreyt oh. dev.pugscode.org. botspam ne usage :) and need better irc integration for it to be useful 00:06
putter ah 00:07
audreyt been pestering trac folks about it. stay tuned :)
putter tuned
audreyt failure down to 318... wondering if I should commit 00:08
svnbot6 r15560 | audreyt++ | * filetest.t: .TEST is no more. 00:10
putter commit early, commit often... anyone who needs stable can -r into the past, no? 00:11
audreyt aye.
00:23 diakopter joined
svnbot6 r15561 | audreyt++ | * fp.pm: 1... is now spelled 1..* 00:34
r15562 | audreyt++ | * indirect_notation.t: "meth $obj" no longer calls "$obj.meth";
r15562 | audreyt++ | remove the test. (Write "meth $obj:" or "$obj.meth" instead.)
r15563 | audreyt++ | * multi_sub.t: the proto erroneously restricted the following multi.
r15564 | audreyt++ | * meth_vs_sub_call.t: Again, "meth $obj" without a trailing 00:36
r15564 | audreyt++ | colon no longer invokes the method.
r15565 | audreyt++ | * Prelude: Make explicit the Num exports as builtin.
00:39 [particle] joined 01:03 offby1 joined
putter wonders if audreyt is up unusually late or early or something. 01:10
audreyt unusally late; just one compile away. 01:18
Limbic_Region she was supposed to go to sleep some time ago
audreyt - how much would it cost for you to not need to work for some $employer? 01:19
audreyt with travel expenses included, usd$3k/mo. if I can get sponsorships somewhere else for travels, then less than that. 01:20
Limbic_Region assumes that is in USD?
audreyt points to "usd" 01:21
Limbic_Region heh
Limbic_Region is a bit tired too and it is still early here
audreyt :)
Limbic_Region I will wait a few days to make sure my idea is not just a bit of manic delusions but.... 01:22
30 sponsors at USD $100 per month = USD 3K / month
and I think that is very doable 01:23
diakopter Limbic_Region: if I may surmise about your idea... yep, I was right.
Limbic_Region volunteers to be the 1st sponsor
diakopter is 0th
audreyt Limbic_Region: diakopter got to be 0th
Limbic_Region heh
well - I honsestly don't have the first clue what the financial situation of the perl 6 supporters is 01:24
so I am thinking fund raiser - where they have that little thermometer to indicate how close we are
yadda yadda
audreyt well, my $job is billing per-hour. I can adjust my working hours each month depending on funding, that's pretty sure. 01:25
Limbic_Region yeah except I personally want you all to myself
er um
01:25 avarab joined
Limbic_Region all to perl 6 01:25
audreyt colour me flattered ;)
I guess I can easily publish my paypal log, but other than that I have no idea if/how/whether to do this. 01:26
Kattana :o interesting idea Limbic_Region 01:27
diakopter audreyt: how about a nice Jifty app - Sponsorship. complete with "matching funds" support, for those wanting the ability to make conditional commitments. 01:28
moritz throws in www.seocompany.ca/project-support-o...ource.html perhaps they could be won for sponsoring audreyt as well? 01:29
lambdabot Title: Project SOS -- Support Open Source
diakopter "I think I have one more donor coming online sometime this week. I put out a spec for the registry and backend tracking of donations. If you are a quality PHP/MySQL coder and use an MVC templating system this would be a nice small project for you." 01:30
Limbic_Region as I said, I am tired so not sure I am thinking straight but it doesn't seem entirely unreasonable to think raising 3K/month for 6 - 12 months is unrealistic
diakopter s/PHP\/MySQL/JiftyOnFeather/ 01:31
moritz diakopter: but look at the date - that's june 2006 - fairly old news 01:32
:(
diakopter exactly... my point is the last news posting is last year. 01:33
so do it elsewhere
sorry, I shouldn't expect so much mind-reading :-D
moritz 't was just an idea ;)
putter I'm in. 2th. 01:34
My one concern being that it sometimes seems a $job is the only thing that... 01:35
gets audreyt to have a sane sleep schedule! 01:36
Limbic_Region true
audreyt heh :)
audreyt starts massive committing... 01:37
Limbic_Region well, I personally don't think there will be any trouble finding sponsors for 1 time donations and for intervals
the biggest concern I have is someone leading the project itself 01:38
we can't count on audreyt - she's too humble
diakopter nominates svnbot6 to be the leader 01:39
Limbic_Region need a web page with means of donations, FAQ, and what not
putter step one, for *tomorrow*, obtaining paypal address from audreyt. 01:40
audreyt [email@hidden.address] ;)
moritz step two, cease discussions at this point to stop audre.* from beeing hilighted today ;) 01:41
Limbic_Region well - I commit to $1200 (either as 1 time donation, $100 / month for 12 months, or $200 / month for 6 months)
I also commit to helping with a FAQ and things to include on the web page 01:42
provided someone else commits to actually building and maintaining the web page
you guys are fooling yourselves if you think she is going to go to sleep before she finishes comitting 01:43
moritz ok ;)
svnbot6 r15566 | audreyt++ | * DrIFT.YAML: Add YAML instance for parallel arrays.
r15567 | audreyt++ | * Pugs.Internals: Move (Typeable1 [::]) instance here from Pugs.Class and
r15567 | audreyt++ | also exports Monoid (becuase all the new Pad stuff is done with it.)
Limbic_Region has 3 more classes to finish documenting and then he is done for the night too 01:44
01:44 larsen_ joined
moritz I just want to remark that we should secure the money before audreyt gives up $job, it would be too ironic if she gives it up, has money for 3 months and then can't find any work... or something 01:44
svnbot6 r15568 | audreyt++ | * Pugs.Internals.Monads: "retError" is now spelled as the 01:45
r15568 | audreyt++ | much more familiar "die". The original rarely-used "die"
r15568 | audreyt++ | is now "fatalError".
Limbic_Region moritz - I was thinking about that - unfortunately we can only do that for the current month
moritz - it is unrealistic to expect people who volunteer to donate over a period of time to give that amount all at once 01:46
diakopter moritz: it appears that audreyt's $job hours are flexible and elastic both upwards/downwards. don't worry about her finding $work, I'd suggest.
audreyt aye. technically that is easy; I malloc my working hours at beginning of each month and I'm billed by hour. 01:47
moritz Limbic_Region: you are right - but we should at least try to get promises for continuing support...
ok, that simplifies a lot ;)
sounds quite cool - who offers such flexible jobs? 01:48
Limbic_Region moritz - consultants typically have that flexibility
mortiz - it is a high risk occupation though 01:49
mortiz - that is, in general. Some highly in demand individuals needn't worry too much
01:50 Caelum joined
moritz Limbic_Region: but beeing highly demanded usually implies getting more than 3k USD/month ;) 01:50
at least in europe
much more ;)
moritz should hilight on mortiz ;) 01:51
audreyt yeah :) but then, that won't get me 50%+ time working on FOSS stuff :)
svnbot6 r15569 | audreyt++ | * Pugs.AST.Internals - Introduce the VCodeMulti data type
r15569 | audreyt++ | to maintain symbolic links into other pad entries to
r15569 | audreyt++ | support multi dispatching.
r15569 | audreyt++ | Also massively refactors PadEntry to support proper constants
Limbic_Region moritz - it is my understanding that audreyt doesn't work as much as she could because she likes spending her time on other stuff
svnbot6 r15569 | audreyt++ | and states, type constraints, and prototype values.
r15569 | audreyt++ | The Sym node now takes an extra value of "initial prototype"
r15569 | audreyt++ | such that this:
r15569 | audreyt++ | sub f { my sub g { ... }; &g := ... }
r15569 | audreyt++ | can generate fresh &g that agrees with the end-of-compilation
r15569 | audreyt++ | version without being affected by rebinding.
moritz allright
now it's time for bed for me as well... night ;) 01:52
diakopter I'd like to continue to sponsor the perpetual, distributed perl6 hackathon with periodic localizations at perl conferences and corporate slideshows.
svnbot6 r15570 | audreyt++ | * Pugs.Types.Code: Add support for VMultiCode as a Code
r15570 | audreyt++ | backend, so proper support for new multi-dispatch algorithm 01:53
r15570 | audreyt++ | (as in qc-dispatch.hs) can be built on it (tomorrow ;)).
r15571 | audreyt++ | Regen DrIFT instances.
TimToady "Sponsor this poor but beautiful Asian child for just dollars a month and keep her out of a life of servitude..." 01:54
Limbic_Region TimToady++
diakopter FOSS can be an unforgiving master.
svnbot6 r15572 | audreyt++ | retError is no more; use "die" instead. 01:55
r15573 | audreyt++ | Pugs.Prim.*: Chase retError/Sym changes.
r15574 | audreyt++ | * Pugs.AST.Pad: diffPad now considers rebound entries as 01:58
r15574 | audreyt++ | "fresh", even if it already existed in outer scope.
r15574 | audreyt++ | This is per TimToady++:
r15574 | audreyt++ | my multi f () { ... }
r15574 | audreyt++ | {
r15574 | audreyt++ | my multi f ($x) { ... }
r15574 | audreyt++ | # &f is "fresh" here
r15574 | audreyt++ | }
r15574 | audreyt++ | Also fills the mergePadEntry hook with a stub; currently
r15574 | audreyt++ | it blindly unifies signatures to (*@_) if the arities
r15574 | audreyt++ | mismatch, but it's expected that we can do per-parameter
r15574 | audreyt++ | unification on lvalue/context/type with (Monoid Params)
r15574 | audreyt++ | in newVal-land.
r15575 | audreyt++ | * Pugs.AST: New readCodesFromRef API to get all variants 02:01
r15575 | audreyt++ | (recursively) from a short name entry.
r15575 | audreyt++ | Also add proper support for static scopes: variables
r15575 | audreyt++ | declared with "state" (including imported functions)
r15575 | audreyt++ | no longer gets unneccessarily cloned upon pad reentry.
offby1 where _does_ she get the energy 02:03
audreyt TimToady: should .kv be exported the same as .keys and .values?
aka, kv(%foo)
(assuming that Pair.key and Pair.value doesn't need to be exported) 02:04
(not really a specific API question; rather, if we can say that when multiple builtin types support the same method with similar semantic, we export it -- as in Hash.kv and Array.kv)
TimToady don't see why not
SamB *similar*? 02:05
SamB thinks of python's collection interfaces... 02:06
TimToady offby1: some of what is currently coming out as kinetic energy was stored up as potential energy in the svk spring
offby1 I suspect coffee
SamB (maybe you want to make sure the semantics are the *same*?)
audreyt ok, same then. 02:07
TimToady for some definition of same
Limbic_Region wanders off to watch a movie 02:09
svnbot6 r15576 | audreyt++ | * Pugs.Eval.Var: Thoroughly separate method dispatch
r15576 | audreyt++ | and subroutine dispatch:
r15576 | audreyt++ | foo $obj; # no longer calls $obj.foo
r15576 | audreyt++ | $obj.foo; # calls $obj.foo first, fallback to foo($obj)
r15576 | audreyt++ | Also improved error reporting; incompatible multi variants,
r15576 | audreyt++ | method lookup failures, and subroutine lookup failures are
r15576 | audreyt++ | now reported with distinct messages, instead of the old
r15576 | audreyt++ | "No compatible subroutine found".
r15577 | audreyt++ | * Pugs.Prim: Export (Pair|Array|Hash).kv but hides Pair.key
r15577 | audreyt++ | and Pair.value, based on the principle that methods that
r15577 | audreyt++ | do the *same* thing across multiple builtin Classes should
r15577 | audreyt++ | be "is export"ed.
r15578 | audreyt++ | * Pugs.Parser: "proto" is now considered a _multi variant 02:10
r15578 | audreyt++ | itself. Still need support for its special tie-breaker
r15578 | audreyt++ | status...
r15579 | audreyt++ | * Pugs.Parser.*: Properly support signature-affected 02:13
r15579 | audreyt++ | categories even in the middle of subroutine parsing:
r15579 | audreyt++ | my sub f ($x) { # named unary
r15579 | audreyt++ | f 1 + 2; # parsed as (f 1) + 2
r15579 | audreyt++ | } # at end of scope, resolve the inner &f
r15579 | audreyt++ | # into the PadEntry itself
putter $100 usd just landed in audreyt from me.
audreyt (actually this time I didn't use offline svk branch :) so the commitlogs are written on the fly per module...)
TimToady don't tell clkao. :) 02:14
audreyt putter: er. um. much appreciated, really.
:D
putter np. your work is much appreciated.
svnbot6 r15580 | audreyt++ | * Pugs.Eval: Binding to qualified constants now properly 02:15
r15580 | audreyt++ | dies (instead of silently doing nothing).
r15580 | audreyt++ | Also method-redispatched-as-subs, when lookup fails,
r15580 | audreyt++ | now still reports as "no such method".
TimToady bbl & 02:17
diakopter chipped in some too. yay for paypal.
svnbot6 r15581 | audreyt++ | * Pugs.Monads: &?CALLER_CONTINUATION is now a simple constant 02:18
r15581 | audreyt++ | sub with a simple signature that matches "want", instead of
r15581 | audreyt++ | a multi; when we convert &want into MO, it can just box the
r15581 | audreyt++ | continuation's signature object and save all the guesswork.
02:20 dmq joined
svnbot6 r15582 | audreyt++ | * Misc. API chasing from the Sym/PadEntry change in other modules. 02:20
r15583 | audreyt++ | * recursive_definition.t: unTODO now that recursive defs work:
r15583 | audreyt++ | sub postfix:<!>($arg) {
r15583 | audreyt++ | if $arg == 0 { 1 } else { ($arg-1)! * $arg }
r15583 | audreyt++ | }
r15584 | audreyt++ | * pair.t: Pair's key() and value() are no longer builtin subs. 02:23
audreyt ok, that's it for the part of the work so far that doesn't causes 90% red :)
once constant, proper multi, constrained pad entries, etc. stops causing 90% red I'll commit them next. 02:24
putter @tell Limbic_Region Limbic_Region++ 02:25
lambdabot Consider it noted.
putter diakopter++
offby1 @tell offby1 gosh, you're cute
lambdabot You can tell yourself!
offby1 :-(
putter lol
offby1 it's not the same.
audreyt smoke is expected to get slower; 203 failure here.
I guess that's it :) g'nite :) & 02:26
offby1 Zzzz
putter audreyt: very neat. I look forward to looking at it. sleep well.
diakopter offby1++ 02:27
putter really need a wave symbol. /* ,* ,"
diakopter `) ~) 02:28
putter `) 02:29
of course, we have unicode... 02:30
How about we start with a wiki page? 02:33
FAQ + paypal link?
oh, hmm. yeah. the anyone can edit it aspect of that might be contraindicated for a paypal link. what's the next idea... 02:34
offby1 "contraindicated". heh 02:36
svnbot6 r15585 | putter++ | yet_another_regex_engine/oop.pl - created. Just a scratch file, containing the beginnings of a p5 transliteration of the Perl-6.0.0-STD.pm operator precedence parser. Vision is to make it executable, and then shake it down. 02:47
02:54 Psyche^ joined
putter So for reference, r15560 seems a pretty r number for the "last stable revision before the object overhaul began". 02:55
Or r15559. 02:56
allbery_b makes a note to hold off on the weekly update& rebuild 02:57
03:02 erg joined
putter I'm sure boston.pm would be willing to kick in a donation. Need website. Mostly need FAQ. As could always point to blog or somesuch. 03:06
03:09 Psyche^ is now known as Patterner
putter Boston.pm meeting this Tuesday, March 13. Having a surfable FAQ by then would be nifty. :) 03:09
avar putter: hrm,, hosting for what? 03:10
putter colabti.de/irclogger/irclogger_log/...l=537#l926 colabti.de/irclogger/irclogger_log/...sel=18#l27 colabti.de/irclogger/irclogger_log/...sel=54#l80 03:14
lambdabot Title: #perl6 2007-03-10,Sat, tinyurl.com/2xztu9
putter or i suppose the first link should have been colabti.de/irclogger/irclogger_log/...l=532#l919 03:16
lambdabot Title: #perl6 2007-03-10,Sat, tinyurl.com/2f5be9
putter end of day 03:19
03:22 stevan__ joined
putter avar: not sure how to sum it up. 03:24
stevan_: moose
we can cheaply free up more of audreyt's time for pugs, so we would be collectively insane not to. 03:25
putter wonders if that holds true for TimToady too, but suspects audreyt's structural simplicity makes it a much lower hanging fruit. 03:28
good night & 03:33
03:35 erg joined 03:37 avarab joined
avarab eek, power outage, I need an ups 03:38
03:40 avarab is now known as avar
avar @tell putter I could host that page I guess.. 03:40
lambdabot Consider it noted.
03:40 erg_ joined 03:52 allbery_b joined 03:54 allbery_b joined 05:21 breinbaas joined
gaal @tell putter Sub::Name uses XS! and isn't compatible with threads, either. Why would you prefer it over *__ANON__? 05:23
lambdabot Consider it noted.
avar gaal: it doesn'w work with 5.005 threads 05:44
gaal what doesn't?
oh
avar search.cpan.org/src/XMATH/Sub-Name-0.02/Name.xs 05:46
05:49 iblechbot joined 05:59 jmacclure joined
specbot6 r14330 | larry++ | More fiddling with context(). 06:00
TimToady wow, 2230 unexpectedly succeeded. unfortunately, most of those are inverted character classes, and I suspect they're succeeding merely because they fail to match... 06:03
but maybe they're really working now. 06:04
06:05 jmacclure left
TimToady oh, I remember seeing fglock check in some unicode prop fixes. that must be it. fglock += 2230 06:08
(or so) 06:09
if so, that means we're now passing more than 20,000 tests!!!!
or are those counted in the 18,000? 06:10
and yes, it does run about 60 06:11
60% slower
06:13 BooK_ joined
TimToady maybe we can release 6.28 on April Fool's day 06:13
06:15 jeremiah joined, amnesiac joined
TimToady zzz & 06:17
06:21 xinming joined 06:37 tcliou joined 06:46 Psyche^ joined
meppl guten morgen 06:46
07:02 Psyche^ is now known as Patterner 07:07 hcchien joined 07:29 jisom joined, jisom left, jisom joined
offby1 guten Stanley! 07:40
meppl good morning offby
offby1 glances around nervously. 07:41
who, me?
nobody saw me.
you can't prove a thing
I didn't do it
07:43 buetow joined 08:16 kanru joined 08:22 nipotan is now known as nipotaway 08:39 elmex joined
avar cease him! 08:54
offby1 desists 08:55
09:28 VanilleBert joined
clkao nothingmuch: ping 09:50
09:54 iblechbot joined 09:55 rindolf joined
gaal clkao: I think he's snoboarding now? 10:05
clkao oh well.
the test tap model thingy should have info about how long each test file takes 10:06
gaal it doesn't? 10:07
hmm, yaml_harness provided it...
10:13 bernhard joined
moritz can't we just use the plan as a rough estimation of how long it will take? 10:24
and then count in 01-sanity how long a test takes on average...
10:25 b00t joined
moritz then multiply that number by 50, and if a test file takes longer than $time_per_test*$plan, kill pugs 10:25
s/50/42/ :)
10:33 DrSlump joined
DrSlump hello 10:34
10:35 VanilleBert left, Belaf joined 10:37 Aankhen`` joined 10:49 chris2 joined
mj41 moritz: see svn.pugscode.org/pugs/util/PaP6-testing/ 11:10
lambdabot Title: Revision 15585: /util/PaP6-testing
mj41 watchdog is win32 only 11:12
moritz comments in english would be helpfull ;) 11:13
mj41 something different, but san be usefull too
yes, I know, but my English sucks, I speak perl :-)
moritz mj41: my $lang sucks worse than your englisch (except where $lang eq "de" or perhaps $lang eq "en") 11:14
mj41 svn.pugscode.org/pugs/util/PaP6-tes...atchdog.pm , see sub sys_for_watchdog 11:15
and svn.pugscode.org/pugs/util/PaP6-tes...atchdog.pl 11:16
test_loop.pl runs commands from conf.pl, through sys_fo_watchdog, e.g. 11:21
'name' => 'make',
'cmd' =>'perl Makefile.PL', 11:22
'mt' => 1*60*60,
11:24 cognominal joined 11:32 lhz joined, sisi left
lhz hi 11:33
moritz hi lhz ;)
lhz I get banned from #perl all the time
moritz why? 11:34
lhz moritz: no idea.. coarse filter ?
rindolf lhz: I'm a #perl op. 11:35
Patterner I'm banned too.
rindolf Patterner: really?
Patterner well, unless I'm reading "[FreeNode] -!- Cannot join to channel #perl (You are banned)" wrong...
tene I've never been banned from #perl 11:36
mj41 you start 'perl test_loop.pl' and 'perl watchdog.pl'. Watchdog will watch output changes of commands starts through sys_fo_watchdog, and after timeout without any change kills innermost pid.
rindolf Patterner: banned people normally can join - they are just deprived of voice.
lhz tene: you must have nice neighbours
tene rindolf: banned = cannot join
Patterner -v is for misdemeanours, ban for criminal offenses :) 11:38
tene Patterner: you cannot speak in a channel you are banned in even if you're joined to the channel, even if the channel is unmoderated
Patterner this makes no sense 11:39
tene Patterner: sure it does
Patterner usually a ban is followed by a kick => not in the channal and no joining possible
rindolf Patterner: I don't see a ban on alicedsl.de 11:40
Patterner and *.de?
moritz Patterner: surely not, I can join ;) 11:41
Patterner so irssi lies... well, "Everybody lies"...
lhz it's not fun standing in the cold 11:44
moritz moritz.faui2k3.org/tmp/perl-bans <-- list of bans in #perl
perhaps it helps somebody 11:45
rindolf Patterner: try now.
lhz rindolf: i can join :) thanks 11:46
rindolf Someone did a ban on 85.*.*.*. %-) 11:47
moritz funny ;)
rindolf lhz: you're welcome.
moritz that would affect most german ISPs I guess ;)
11:51 cognominal joined
Patterner rindolf++ 11:54
rindolf Patterner: you're welcome. 11:55
12:04 explorer joined 12:15 larsen_ joined 12:17 dolmans joined 12:19 dolmans joined, mjk joined 12:39 RHainsworth joined
RHainsworth question on use of parrot in pugs: how do call a function written in parrot from within a perl6 program? 12:41
parrot_pugs_2: suppose function called <foo> in file <bar.pir> in current directory. 12:43
12:51 diakopter joined
gaal Hey. (How) Should the wiki be linked to docs/*? For example, a "source tree overview" doc would be great to have -- but shouldn't it also be part of the actual source? 13:29
There's for example the existing Pugs::Doc::Hack 13:30
It's no GHC Commentary, but it's a start
13:34 cognominal joined 13:35 ozo_ joined
audreyt greetings lambdacamels 13:40
gaal heya audreyt
rindolf Hi audreyt
audreyt gaal: wiki can link to docs via source:docs/foo/bar/ syntax 13:41
docs can link to wiki via L<> syntax
wiki is much easier to index/navigate/find things
RHainsworth hello all
audreyt so I'd like it to be an ongoing index into the source three, with perhaps comments that are more dynamic (i.e., not strictly tied to some part of the code) 13:42
gaal it == the prospective Commentary?
audreyt *tree
yeah, or any wikibook
RHainsworth would someone please point me to a doc on how to use parrot from inside pugs? 13:43
gaal svk ci feels... safer :) is the wiki backed up? (hehe, is svn repo backed up?)
audreyt gaal: svn repo is replicated.
gaal if only by myriad "svn co" :) 13:44
audreyt svn.openfoundry.org has one
svn.perl.org another
googlecode too
gaal nodnod
audreyt so. a thought is to make wiki part of pugs
store it with svn backend under wiki/
gaal avoiding loops :) 13:45
audreyt yeah :)
gaal unles they are Strange Loops, in which we can keep them as pets
audreyt so does that sound sane? 13:47
for there is existing code: trac.edgewall.org/attachment/wiki/T...kend-patch
lambdabot Title: TighterSubversionIntegration: svn-wiki-backend-patch - The Trac Project - Trac, tinyurl.com/2gvlzw
gaal is writing a very high level Overview page 13:49
audreyt gaal++ gaal++ gaal++
meanwhile I'll finish up multi dispatch and pad storage constraints, and eliminate VRef
gaal whee! 13:50
diakopter karma gall
karma gaal 13:51
audreyt @karma gaal
lambdabot gaal has a karma of 71
moritz @karma gaal +1
lambdabot gaal has a karma of 71
moritz ;)
@help
lambdabot help <command>. Ask for help for <command>. Try 'list' for all commands
moritz @help karma
lambdabot karma <polynick>. Return a person's karma value
moritz read only :(
diakopter lambdabot: learn: "user += n" 13:52
gaal diakopter: that's because of this line in the source: karma gaal = const 71 13:54
diakopter hooray for mixed amphetamine salts: my mental todo-list actually works again! 13:55
audreyt that will make everybody's karma 71
diakopter: still, an external todo list helps a lot :) but having a working L2 cache is good indeed!
gaal unless gaal is a literal
moritz gaal: so lambdabot has to learn how to modify its own source code ;)
gaal she'll probably get there. if she doesn't already do it 13:56
diakopter audreyt: yeah, but if I can't remember something long enough to put it on the external todo-list, I haven't been able to even use an external one.
s/if/when/ in my last 13:57
anyway, gaal++ for writing a high level Overview page 13:58
@karma gaal
lambdabot gaal has a karma of 72
diakopter k; it works
moritz shouldn't ++gaal eq gaam?
audreyt no... Str is not a mutable class 13:59
?eval 'gaal'++
moritz audreyt: you have to think in meta syntax ;)
audreyt :)
evalbot_r15585 user error (Incompatible version number for compilation unitā¤Consider removing blib6/lib/Prelude.pm.yml and make it againā¤)ā¤pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤
gaal
.oO(I broke teh pugs)
14:00
14:00 yts joined
gaal audreyt: when's the move to newAST planned? not for this release probably, right? 14:09
eg. Pugs.AST.CaptInternals:506 14:10
devbot6 dev: Overview edited by gaal <dev.pugscode.org/wiki/Overview> 14:43
gaal (This is obviously very early r, please add stuff :) 14:44
moritz gaal++ it looks very readable 14:45
even for /me non-haskell-hacker 14:46
14:46 bernhard joined
gaal thanks for the input :) there's a lot more to add, for example the only thing I mention about the runtime there is the MO bridge (and that very loosely) but there are plenty of things oughta be discussed 14:48
how does memory management work? what would adding a debugger entail? how is the pugs runtime different from one that would have been written in a non-FP language? etc. 14:49
also, just a list of things that are stale or transitionary would be great 14:50
like, src/PIL's in the closet 14:51
(hmm, Pilsner: the Closet)
14:51 jisom_ joined
gaal putter and every other core hacker, your additions to the stone doc soup welcome :) 14:54
14:55 Psyche^ joined
gaal
.oO( in the line of steps to spur dev more discussed earlier, I think we should break iblech out of school or something )
14:55
audreyt gaal: all the Exp structure will stay the same for this release; otoh all the Val variants will be borged 14:58
14:59 Limbic_Region joined
gaal *nod* a journey of a thousand constructor begins with one Val 14:59
15:00 Psyche^ is now known as Patterner
gaal s/r /rs/ 15:00
s,rs/,rs /,
audreyt we already dealed with the native pure classes (or rather, have a good frameowr to deal with them)
PerlSV is taken care of; my current work will nail VRef and VCode
then VObject
Limbic_Region audreyt - did anything happen with the save the asian girl campaign?
lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region moosages
audreyt and all the imporatant constructors should be done then
Limbic_Region hrm
audreyt Limbic_Region: dunno, most likely nothing 15:01
Limbic_Region @moosages
lambdabot putter said 12h 35m 59s ago: Limbic_Region++
gaal you mean, eg PureStr and the general-magical any-Hs-Boxable?
audreyt yeah
gaal dances
not as useful with other types, though: PureNum's not a native Hs type 15:02
and btw, to import Prim in Meta we need another circularity saw 15:03
audreyt we can freely use -boot now anyway
gaal (c-saw?)
audreyt feel free to
gaal I'm reluctant to -boot unless I can't think of anything else, becuase Prim's -boot would be large 15:05
Limbic_Region is there a way to put money in a paypal account (that isn't yours) if you don't have one yourself (and have no intention of getting one)?
moritz Limbic_Region: you can give me the money, and I'll transfere it to a paypal account ;-) 15:06
audreyt Limbic_Region: [email@hidden.address] is my paypal account.
gaal hmm, I should write a boot-boot.pl mangler that looks at either an .hs file or maybe even an existing .hi and writes a -boot
Limbic_Region audreyt - that didn't answer the question though 15:07
Limbic_Region is completely paypal ignant
moritz Limbic_Region: no, honestly: find somebody you trust who has a paypal account
Limbic_Region I think my sister has one
Limbic_Region wonders how much trouble audreyt would have cashing a personal check from a US based bank
moritz what do you think about donate.pugscode.org as URL for the donation page? 15:08
Limbic_Region I think you just volunteered
gaal Limbic_Region: even if it's no trouble, it's probably very high overhead
Limbic_Region what about a direct EFT - I do that to the Philippines monthly and we get a decent exchange rate 15:09
moritz Limbic_Region: I don't have an idea how to add a virtual host to that server
gaal I'm guessing $20 commission (without knowing anything about .tw banks)
moritz Limbic_Region: without shell access, that is ;)
15:19 kanru joined
diakopter Limbic_Region: there are no commissions/fees if you use paypal and have a "confirmed" bank account. 15:21
specbot6 r14331 | audreyt++ | * S12: Pass-throught methods should capture the entire
r14331 | audreyt++ | invocation, not only the positional part. Also remove
r14331 | audreyt++ | the bogus "is context".
diakopter moritz: donate.pugscode.org or sponsor.pugscode.org ? 15:26
audreyt (bbiab, hack)
moritz diakopter: yes ;)
diakopter moritz: heh.
moritz diakopter: I don't know which is better ;) 15:27
lets toss a coin
?eval rand() < 0.5 ?? "donate" !! "sponsor"
evalbot_r15585 "sponsor"
diakopter waits for TimToady or a TPF person to volunteer to set up a sponsorship fund so donations can be US-tax-deductible.
moritz diakopter: evalbot_r15585 know's the answer ;) 15:28
diakopter heh
?eval rand() < 0.5 ?? "donate" !! "sponsor"
?eval rand() < 0.5 ?? "donate" !! "sponsor"
evalbot_r15585 "donate"
diakopter ?eval rand() < 0.5 ?? "donate" !! "sponsor"
evalbot_r15585 "sponsor"
moritz diakopter: hey, that's cheating ;)
I#m not a native english speaker so i don't know which one is better 15:30
s/#/'/
15:32 Seeraa joined
Patterner ?eval rand() < 10 ?? "donate" !! "sponsor" 15:37
evalbot_r15585 "donate"
15:38 Seeraa left
Juerd moritz: Sponsorship has goals attached 15:43
moritz: And donating is just giving money, with no strings attached
(overly generalized explanation)
moritz Juerd++ thanks 15:44
so we want "sponsor", right?
Juerd Most people want both ;)
moritz yes, but the give money in order to push pugs/p6 dev, not because audreyt is a cute, suffering child (to paraphrase TimToady ;) 15:46
allbery_b heh 15:48
Juerd Well, with sponsorship you generally have fixed goals. It's like "I give you this amount of money, and in return I expect you to [ reach this milestone | work this many hours ]" 15:52
moritz Juerd: that's what is called "employement" ;)
at least that's how I learned it ;) 15:53
Juerd It's almost the same
With sponsorship, you don't own the (thoughts of, work of) the "employee"
moritz Juerd: reading the first two paragraphs of en.wikipedia.org/wiki/Sponsor I don't get that impression 15:55
well, anyway... I don't care... the question is still <sponsor donate>.pick
15:55 devogon joined
diakopter cnames and ServerAliases are easy... 15:57
15:57 RHainsworth left 16:00 Khisanth joined 16:01 khisanth_ joined 16:03 khisanth_ is now known as Khisanth 16:04 forsaken joined, mkirank joined 16:06 moritz_ joined
Juerd moritz_: Bick both? :) 16:12
s/B/P/
moritz_ in SEO terms that's not a a good idea
Juerd moritz_: And re owning things: branding something isn't owning it
What's SEO? 16:13
moritz_ but I guess it doesn't matter
Juerd: search engine optimisation
Juerd Have one redirect to the other. Don't alias.
Juerd would go for sponsorship
moritz_ ok
so both
who has the permissions to add virtual hosts to pugscode.org? 16:14
Juerd audreyt:
Although. Perhaps it's cnamed entirely
It isn't
Audrey can change that
16:23 Psyche^ joined
Limbic_Region moritz - I think sponsor is the right term only because that's what audreyt used last night 16:26
moritz - the important thing is making it clear on the page 16:27
and not leaving a 1 word domain name to convey intent
Limbic_Region has done a bit of research and will probably break down and get a paypal account
moritz_ Limbic_Region: ok, I agree ;) 16:28
16:31 awwaiid_ joined 16:35 Psyche^ is now known as Patterner 16:57 VanilleBert joined 17:15 wilx joined 17:23 buetow joined
specbot6 r14332 | larry++ | turned context() into an arglist-specified navigator 17:31
r14332 | larry++ | defined caller more correctly as context(&?ROUTINE,1)
r14332 | larry++ | clarified relationship of caller : CALLER :: context : CONTEXT
audreyt TimToady: does STD handle pseudoassignment within scoped decl yet? 17:32
constant $x = 123;
gaal mooses
audreyt currently this is ill specced:
constant ($x, $y) = 123
TimToady: I'm thinking about unifying pseudoassignment with <defaultvalue> in the common 1arg case 17:33
by saying that the paren-may-be-omitted form includes the initializer
viz.:
constant ($x = 123, $y = 456); # legal
constant $x = 123; # legal, shorthand for :($x = 123)
17:33 putter joined
audreyt this seems far more regular than the hack we previously suggested in infix:<=>. 17:33
17:34 _jcrigby joined
TimToady seems fine to me 17:37
don't have time to check STD right now--gotta go play the drums again.
&
17:37 justatheory joined
audreyt cool. will spechack 17:39
putter Limbic_Region: how about "donate". as someone pointed out, sponsorship implies greater commitment by the sponsored party. it would be nice to leave audreyt free of implicit commitments. 17:40
lambdabot putter: You have 2 new messages. '/msg lambdabot @messages' to read them.
putter donate -> greater resources -> able to better take advantage of opportunities, but no implication of -Ofun ceasing to be the guide.
basically thinkening the shoestring (budget), rather than any change in administrative approach. 17:42
diakopter imagines TimToady thinking about perl6 specs while drumming to CCM 17:43
for the uninitiated, I was using "CCM" to mean en.wikipedia.org/wiki/Contemporary_...tian_music 17:45
17:46 amnesiac joined 17:49 amnesiac_ joined
specbot6 r14333 | audreyt++ | * S03: Unify scope declarator initializers with signature 17:51
r14333 | audreyt++ | parameter initializers, yay!
r14333 | audreyt++ | These forms are now fine:
r14333 | audreyt++ | constant $x = 123;
r14333 | audreyt++ | constant ($x = 123);
r14333 | audreyt++ | constant :($x = 123);
r14333 | audreyt++ | And this is naturally forbidden:
r14333 | audreyt++ | constant ($x) = 123;
gaal w00t!!!!1111one 17:52
audreyt++
rawk
oh 17:53
hehe, it's in the spec
s/pec/vn/ there and it'd really be time to party 17:54
audreyt that's coming up rsn... 17:55
(been implementing it that way and suddenly realized that its' against the spec)
(...so fixed the spec)
gaal lots of parser work to make it happen..
hehe
I'm kinda scared of that change. we'll have to visit, like, almost every function 17:56
audreyt that means we can finally ditch stateDeclAssignHack
17:56 Psyche^ joined
audreyt mm? 17:56
gaal moving PArser over to newVal
audreyt *nod*
gaal well, and newAST
audreyt newAST not yet
gaal טט 17:57
er
yeah
18:00 Jedai joined 18:03 Psyche^ is now known as Patterner 18:16 amnesiac_ is now known as amnesiac
putter Limbic_Region: ping? 18:23
moritz: ping?
moritz_ putter: pong
putter donate.pugscode.org ? 18:24
moritz_ putter: yes
putter :)
moritz_ btw to clarify: I'm not very good at writing web apps... that should be somebody's elses job
bbiab, supper 18:25
putter perhaps kiss, and just say roughtly
audreyt would ideally like (-Ofun) to spend more time working on pugs and Perl 6, but needs $job to keep $~3kUSD/month flowing. Fortunately,$job is flexible, so hour by hour, donations free up $job time.
Donations are thus a startlingly inexpensive way to get more audreyt time for Perl 6. Month by month, no administrivia or commitments, just freeing audreyt do what we are collectively delighted she is currently choosing as a focus of her time.
moritz_ that's exactly what I wanted to write ;) 18:26
putter and maybe: Let us get while the getting is good, and bring "Christmas" that much closer. Taiwan doesn't even take a slice of out-of-country funding.
:)
audreyt yeah. that may get changed by reunification, so better start before _that_ happens... :) 18:27
putter lol
(then pause, and doesn't seem funny at all)
audreyt (anyhowit's technically a correct statement; personal accounts in .cn is a bit more regulated.) 18:28
audreyt goes back to PadHacking 18:29
18:29 cmarcelo joined
putter (re "doesn't seem funny at all", just that there's a world of potential pain around that concept) 18:29
gaal are there developements in that direction? /me reads 18:30
audreyt economically? sure :) I really don't much care either way...
sub f { my $x ::= 123; say $x }; f(); f(); 18:35
"123\n123\n" or "123\n\n"? arguable either way
but the first seems slightly more useful?
putter "This does the same as := except it does it at compile time." 18:36
audreyt yeah. the question is, upon pad refresh for "my", does it clone from its compile-time value? 18:37
consider:
sub f { my &g ::= sub { ... }; say &g() }; f; f; 18:38
which ought to be the same as
sub f { my sub g { ... }; say &g() }; f; f;
obviously upon reentry, &g should go back to its original ::= sub
instead of being an undefined Code
gaal huh whaaaa? why would that ever be 123\n\n?
18:39 obra is now known as perl6_project_ma, perl6_project_ma is now known as perl6_projectmgr
audreyt gaal: well, uhm, in pugs currently it's "\n\n" 18:39
which is arguably far worse.
anyway. luqui hardcoded the do-not-refresh-&-sigil rule 18:40
gaal I don't see any sane value for $x to be other than 123 on any entry
audreyt but I wonder if we should extend the treatment for all vars
perl6_projectmgr Important note: In the next couple weeks, we'll be debuting a new "Perl 6 microgrants" program. Up to USD500 for up to 1 month of hacking time on some Perl 6 related thing. These grants will be outside the regular TPF grants program. Start thinking about cool things you can do.
18:40 perl6_projectmgr is now known as obra
gaal
.oO( U+2668 )
18:41
audreyt: "arguable either way" -- what's the argument in favor of "123\n\n"? 18:42
putter sub f { my $x ::= []; $x.push 9; say $x.elems } f;f; 18:43
gaal my intuition: a lexical global, that is, 9\n 9 9\n 18:45
::= means one bind ever.
what if somebody closes on that, that's in the realm of crazy scary and I don't know :) 18:46
18:46 ron_ joined
putter = 9\n9\n seems odd for := to be different... 18:46
gaal why? if you want :=, say := :-) 18:47
I mean, that's like saying it's odd that $x = BEGIN { time } is different from $x = time 18:48
18:49 ron_ is now known as tuna, tuna is now known as euleron
audreyt one-bind-ever is a pretty good story. 18:50
putter ":= is like =, but replaces the container", "::= is like :=, but does it at compile-time". actually,
yes
the full S02 quote is "This does the same as := except it does it at compile time. (This implies that the expression on the right is also evaluated at compile time; it does not bind a lazy thunk.) ". 18:51
audreyt yes, but the relationship to compile-time pad values with runtime values are vague.
for example, we know that
my Int $x;
putter I think the "the same as := " is perhaps a bit misleading.
audreyt actually does a $x ::= (Scalar of Int);
but upon pad refresh, $x is a new scalar-of-int all over again 18:52
er
$x ::= (Scalar of Int).new
so I'm wondering what is actually with the pad-refresh process that creates new containers from compile-time prototypical values. 18:53
putter one-bind-ever means my $x ::= equiv state $x = ? no...
audreyt let me think over it again... 18:54
gaal ::= is the one ring binder
it works best when it's dark 18:55
18:55 xerox joined
rhr this looks wrong in spec r14332: context(Method,Method); # nearest context that is method - however - context(Sub,Sub,Sub); # 3rd nearest sub context (should be nearest?) 18:55
audreyt I think what happens is that pad refresh calls .clone over the compile-time proto 18:56
which is collected at the time when the block finishes compilation 18:57
i.e. at the closing brace 18:58
this is so that
sub f { my $x ::= 3 }
sub f { my $x; $x ::= 3 }
would mean the same thing
so $x is a rebindable lexical pad entry with Int(3) as its proto
and each time upon reentry, its entry gets rebound to Int(3).clone 18:59
which is conveniently just Int(3).
rhr: well, the commit looks wrong 19:00
Repeating any smartmatch just matches the same context again unless
unfinished sentence etc
TimToady is probably still working on it...
rhr yeah, that's what I thought 19:01
putter my $x ::= [$+foo]; ?
audreyt you mean %ENV<foo>? 19:02
(there's no caller during compilation)
putter ENV will do. was looking for something that would be different at ct and rt. 19:03
audreyt doesn't matter; the Array() object is cloned
not the computation
this means that upon reentry, you get a fresh 1-item array 19:04
no matter what you pushed to it last run
which is, actually, consistent
my @x; # simply means "my @x ::= []"
offby1 just joined the conversation
audreyt so $x shouldn't be any different.
offby1 is [] roughly what "nil" is in Lisp?
putter offby1: no, an empty array literal 19:05
offby1 ok
putter any downsides to clone() story? 19:07
gaal what does this do?
sub f { my @x = BEGIN { [] } }
and why does 'my @x;' not simply mean "my @x := []" ? 19:08
(is there any difference?)
(the clone-proto story stipulates there is) 19:09
Gothmog_ Hm, is [] mutable? 19:10
gaal (that my @x already appeals to some proto, [] because of the @ sigil and in the absence of other shapes, and the := bind just comes along and overrides that at runtime)
Gothmog_: its content is...
audreyt "my @x := []" happens at the wrong time
it's happen upon execution of that statement 19:11
but we want it upon entry
gaal audreyt: I think I see what you're saying -- does my last paranthetical remark agree?
audreyt "my @x" means "my @x is Array"; the [] is just a way of saying Array.new
correct, it agrees 19:12
gaal okay 19:13
putter so my @x ::= []; means my @x is Array; @x = BEGIN{Array.new}.clone; ? 19:15
19:15 yts joined
audreyt :=, not =, upon reentry 19:16
but otherwise yes
putter k
gaal I"m sold 19:18
audreyt hm that also means
sub f { my $x; BEGIN { $x = 123 }; say $x }; f;f; 19:19
is "123\n123\n"
and you can assign the $x again in $f if you wish
next time it's still a mutable 123
I think I like that. if we go with it, then we can totally kill the freshness counter in Lexical pads.
(in perl5 it's "123\n\n" which always bothered me.)
(because of the "freshness counter" prevents refresh upon first entry) 19:20
always had seemed arbitrary to me
so the story is that, at end of compilation of that block, $x is bound to (Scalar of Any) that contains 123 19:23
at each reentry we clone that scalar
so it's a fresh object 19:24
but it starts with 123.
putter sub f { my $x; BEGIN { $x = [] }; $x.push 9; say $x.elems }; f;f; "9\n9 9\n" yes? oh, so no.
audreyt no.
well, depends on how deep the clone is. 19:25
putter notes that we've confused the meaning of .elems, suggesting it may need a name change.
audreyt what is more useful?
gaal putter: it was my confusion, I think 19:26
putter but no one noticed/commented, which suggests a possible problem. the word is consistent with both interpretations. 19:27
gaal well, you can tell the user to use 'state' if that's what they want
audreyt if the clone is but one level, then "9\n9 9\n" because Scalar.clone is the same as assignment
I think I actually want shallow clone, because deepcloning a closure doesn't quite make sense here
gaal putter: I think Juerd is consistently advocating against this method and to use context instead.
19:28 fglock joined
putter re state, it is cloned in closures yes? it seems like there should be some way to bind a lexical to a compile time thing which is hence forth untouched/uncloned. 19:30
audreyt that is the state declarator 19:32
sub f { state $x ::= 123 }
which gives you a chance of assign once:
sub f { state $x = 123 }
if you write "state $x ::= 123" you may also write
sub f { constant $x = 123 } 19:33
which thanks to the specchange, actually works now. (commit in a bit)
svnbot6 r15586 | fglock++ | PCR - fixed 'newline', 'any' rules
r15586 | fglock++ | - implemented token **{3}
r15586 | fglock++ | - better support for Unicode char names (pugs named_chars.t)
fglock pugs should pass a few more hundred regex tests :) 19:35
audreyt fglock++ 19:36
putter admires BEGIN/CHECK INIT/END START etc. my $r will start { .set_random_seed() }; 19:37
allbery_b wonders if he should abort his current smoke and start over
putter S04
gaal: re elems, and "use context", it would be nice to have a method, if only so array like things can report their length without being required to associate their int coercion with it. 19:41
audreyt .count? 19:43
putter one complication is the sequence/set distinction. if i delete() in an array interior, its length doesn't change. but does it's count? hmm, and does its length change if I delete() its zeroth element? matching current expectations pl community expectations might be a win. whatever that is. 19:48
audreyt deleting the last currently shrinks.
gaal *::<&count> = sub (@x is copy) { $*COUNTER = 0; for^H^H^Hloop ( $*i=0 ;;$*i++) {unshift @x; if exists @x[0] { $*COUNTER++ } else { last } } return $*COUNTER } # j/k :-P 19:49
I'm just imagining what really bad Perl 6 would look like :/
putter and first not. +@a is currently max exists + 1. not sure how to make that a name.
shudder 19:50
gaal okay, my inanity levels tell me I have to get away from the keyboard :)
putter or start the p6 style checker project... ;)
gaal is it too late to ask for fully-qualified names NOT to be legal without a 'use lax' pragma? 19:51
I never liked that use-strict loophole
audreyt dunno, they seem useful to me 19:53
gaal or to make more precise: why should you ever be able to reach a variable that's in no symbol table w/o symbolic references?
audreyt $YAML::Syck::SortKeys = 1;
gaal YAML::Syck.SortKeys = 1 # better, no silent failure if typo
(assuming it's a rw property) 19:54
audreyt well what you really want is that they don't autovivify
putter re SBCL backend (I forget who was interested), note common-lisp.net/project/cl-stm/ . unclear what state it is in.
gaal nnnno, for reads too
lambdabot Title: CL-STM
audreyt or rather, packages stay as locked hash
gaal yes. 19:55
assuming they're backed by hash, which TimToady has been resisting to assume
audreyt use optimize :packages<close>;
pugs -O
is supposed to do that
forcing predecl with "our" seems of course to be a win for me 19:56
gaal It's a misnomer if 'use optimize' gets you safety
audreyt well maybe "use strict" does. 19:57
gaal what if I want openness, but for it to be safe, ie, need an explicit heres-the-new-name-I-want
as in your our suggestion--but that's not currently meant for fully qualified names 19:58
audreyt cool, refresh is entirely excised and constants appear to work. resmoking before commit
s/refresh/freshness/ 19:59
gaal whee!
gaal rips himself from the keyboard
night
audreyt nite 20:00
hm, freshness is still needed because that 20:23
class Foo { my $x = 123; sub f { $x } }
needs to close over the same $x
oh well.
20:26 Caelum_ joined 20:28 Caelum_ is now known as Caelum
TimToady I've been wondering if ::= is just duplicating constant. 20:28
audreyt you mean, if people want BEGIN{:=}, they'll write BEGIN{:=}. 20:31
however, not quite. 20:32
my $x; constant $y = $x;
evaluates $x.ITEM not $x.VAR
so you need
constant $y = $x.VAR;
20:32 Psyche^ joined
audreyt to get the semantic of 20:32
my $y ::= $x;
which seems a bit draconian
TimToady k 20:36
20:36 BooK joined 20:40 weinig is now known as weinig|bbl 20:41 Aankhen`` joined
svnbot6 r15587 | audreyt++ | * ext/Cipher: Change the broken subroutine call form: 20:41
r15587 | audreyt++ | my $x = new Cipher::Caesar;
r15587 | audreyt++ | to:
r15587 | audreyt++ | my $x = Cipher::Caesar.new;
20:44 Psyche^ is now known as Patterner
svnbot6 r15588 | audreyt++ | * HTTP.pm: typo. 20:44
specbot6 r14334 | larry++ | thinko spotted by rhr++ 20:47
svnbot6 r15589 | audreyt++ | * Pugs.AST.Scope: 20:50
r15589 | audreyt++ | let/temp/env are no longer scope declarators.
r15589 | audreyt++ | cosntant/has are now scope declarators.
r15590 | audreyt++ | * Pugs.AST.Internals: Add cloneRef and cloneIVar APIs
r15590 | audreyt++ | to facilitate pad-entry cloning.
r15590 | audreyt++ | Pad reentry for lexical variables now unconditionally
r15590 | audreyt++ | clones its compile-time proto-value, regardless of
r15590 | audreyt++ | its sigil.
r15591 | audreyt++ | regen instances.
allbery_b note to self: don't try to rebuild pugs until audreyt++ goes to bed :) 20:51
svnbot6 r15592 | audreyt++ | * Pugs.AST.Pad: new adjustPad API to adjust one pad entry;
r15592 | audreyt++ | also chase s/value/proto/ naming change.
r15593 | audreyt++ | * Pugs.AST: The "SGlobal" pseudo-scope is now gone; 20:53
r15593 | audreyt++ | autovivification of qualified variables now simply
r15593 | audreyt++ | assumes "our" semantics.
audreyt TimToady: what does "has" mean outside a class? 20:54
plain error?
svnbot6 r15594 | audreyt++ | * Pugs.Lexer: Parse for "has" and "constant".
TimToady or maybe the routine has an attribute? 20:55
audreyt how would you access it?
TimToady &foo.attr
nothingmuch was asking for something like that once upon a time
audreyt *nod* 20:56
though it's of dubious similarity
since the normal class-closure is only entered once, at composition time 20:57
yet its instances receive separate "has" slots
TimToady but might be useful for some kinds of classless OO
audreyt that is true 20:58
20:58 weinig|bbl is now known as weinig
audreyt sub f { has $.moose } 20:58
hm, still weird.
TimToady actually, nothingmuch was asking for a view on what the closure sees 20:59
my $x; sub f { have $.x } is what we came up with at the time
but maybe just has $.x ::= $x?
audreyt I still don't quite get it... &f gets new eigenmethod &x 21:00
svnbot6 r15595 | audreyt++ | * Prelude.pm: Use ::= not := for subs.
audreyt how is it diff from
sub f { my $.x } 21:01
?
what I mean is, the semantic is what we prescribed to class attrs
TimToady that would be another possible syntax
audreyt classless oo has no concept of instances
and so "has" and the whole $!x slot notation seems dubious
TimToady fair enough
audreyt making "has" illegal outside classes for now... 21:02
is C<only> official? 21:04
if so, I'll add a para in S06 about it where it belongs (instead of S12 in passing)
svnbot6 r15596 | audreyt++ | * Pugs.Eval/Pugs.Prim: More s/SGlobal/SOur/ chase.
21:04 forsaken joined
TimToady yes, it's official 21:05
audreyt so I can write 21:09
only foo {...}
k 21:10
TimToady goes in the same slot as multi and proto, yes
21:15 buetow joined
pasteling "evalbot_r15588" at 194.145.200.126 pasted "Pugs build failure" (416 lines, 22.4K) at sial.org/pbot/23425 21:15
svnbot6 r15597 | audreyt++ | * Pugs.Parser.Util: When we finish parsing a block, all 21:19
r15597 | audreyt++ | its lexical entries are checked for rebinding; the rebound
r15597 | audreyt++ | value is used instead of its initial proto for subsequent
r15597 | audreyt++ | reentry clones. For example:
r15597 | audreyt++ | sub f { my $x ::= 123; say $x; $x := 456 }
r15597 | audreyt++ | f(); f(); # "123\n123\n"
r15597 | audreyt++ | The reason for this is that we don't want to special-case
r15597 | audreyt++ | ::= as part of declarator.
specbot6 r14335 | audreyt++ | * S06: Add the "only" routine modifier. 21:23
r14335 | audreyt++ | Also state explicitly that modifiers cannot apply
r14335 | audreyt++ | on anonymous routines.
svnbot6 r15598 | audreyt++ | Misc chase of scope name changes. 21:25
r15599 | audreyt++ | * Pugs.AST.SIO: Add "stm" and "io" as aliases for "liftSTM"
r15599 | audreyt++ | and "liftIO". (from lambdabot; dons++)
21:25 buetow joined
gaal audreyt: "routines do not share its short name" --> " 21:25
"their"
short names
audreyt fixed 21:27
TimToady: what do you think about this form?
state Moose $x .= new;
constant Dog $fido .= new;
or, a bit more involved: 21:28
moritz_ there is no buld failure that "make realclean" can't fix ;)
audreyt constant :(Dog $fido .= new)
21:28 weinig is now known as weinig|bbl
audreyt that is, should all the pseudoAssignment forms be supported in initialiers? 21:29
TimToady .= and := basically? 21:30
audreyt (prior art: s[...]+=123)
TimToady but initializers never have anything to start with 21:31
audreyt well := is not pseudoassignment
TimToady except the bare proto
audreyt right, but .=new.
I guess what I mean is
state Dog $x .= new;
should it assume FIRST semantics
or should it simply renew each time. 21:32
TimToady START you mean
audreyt yes
also whether
constant Dog $fido .= new;
is an error or kosher.
TimToady I think we want to treat .= as a form of = here
so state uses START semantics on .= and you can .= a constant 21:33
specbot6 r14336 | audreyt++ | * typo; gaal++
TimToady as for other += in this position, I suspect we should force them to also work within the init semantics or fail, otherwise they'll violate least surprise maybe 21:34
audreyt ok. but then since we said it's "simple signature" form 21:35
do we also allow
state :(Dog $x .= new);
?
if so, maybe build it into the Signature syntax
TimToady it seems sensical 21:36
audreyt ok, doing so.
pugs> sub f ( $x = $x ) { $x }; f(4)
4
good that it already works...
oh wait.
TimToady though people will expect :(Int $x += 1) to set $x to one more than was passed in 21:37
audreyt exactly.
but it actually casts it into optional
so, too surprising
so maybe keep it in the "special parenless" 21:38
TimToady and other people would expect it to modify the original argument
audreyt and reject it in full sig form
i.e.
TimToady fine, can relax later if desirable
audreyt state ($x .= new) # fails 21:39
k
svnbot6 r15600 | lwall++ | feeble attempt to keep STD in sync with new init rules 21:52
specbot6 r14337 | audreyt++ | * S03: Allow infix-assignment forms in the simple-one-arg 21:54
r14337 | audreyt++ | case of variable declaration:
r14337 | audreyt++ | constant Dog $fido .= new; # okay: a constant Dog object
r14337 | audreyt++ | constant Dog $fido = Dog.new; # same thing
r14337 | audreyt++ | However, this is not a generalized relaxation of the Signature syntax:
r14337 | audreyt++ | constant Dog $fido = $fido.new; # error: cannot refer to itself
r14337 | audreyt++ | constant (Dog $fido .= new); # error: cannot use .= with parens
21:55 Psyche^ joined
pasteling "moritz_" at 80.193.211.68 pasted "build failure of r15599" (5 lines, 283B) at sial.org/pbot/23426 21:58
TimToady I got that one too, almost back to that spot in realclean 22:00
svnbot6 r15601 | lwall++ | more var decl hackery
TimToady still blows up 22:01
audreyt fixing 22:02
offby1 distributed real-time software development _and_ testing
22:03 Psyche^ is now known as Patterner
svnbot6 r15602 | audreyt++ | * Pugs.Parser.Literal: Make pseudoAssignment parametric 22:06
r15602 | audreyt++ | instead of hardcoding $$/ as the lhs, so it can be
r15602 | audreyt++ | used elsewhere than "s[]=..." forms.
audreyt just a sec... 22:07
svnbot6 r15603 | audreyt++ | * Pugs.Parser.Operator: Remove state decl hacks now we
r15603 | audreyt++ | are about to unify it back to general declaration.
22:10 larsen_ joined
svnbot6 r15604 | audreyt++ | * Pugs.Parser: Unify "state" and "constant" assignment-phase 22:12
r15604 | audreyt++ | magics into a general Signature-default-value based form.
r15605 | audreyt++ | * Pugs.Parser: Parse for default value regardless of whether
r15605 | audreyt++ | param is defaulted as optional.
audreyt r15604 should build now.
er, r15605.
moritz_ tries 22:13
TimToady gets past 95 this time 22:15
audreyt need r15606 to run Test.pm. 22:16
allbery_b still smoking some ancient version :) 22:17
svnbot6 r15606 | audreyt++ | * Pugs.Parser.Operator: The := operator is not really infixAssignment.
audreyt running smokes now. looking at least sane... 22:18
(clone pads is currently slow; longer smoketime is expected.)
TimToady same slow as before?
audreyt same, but more things are parsing
so maybe a bit longer? 22:19
TimToady and maybe running a few more regex tests now
audreyt in any case, I think our pad story is quite solid now. can even add constraints if feel like to.
but eliminating VRef and getting multi dispatch right is more interesting
so workign on that next, before VObject bridge
22:19 Psyche^ joined
audreyt incidentally pdd15 is a pretty good guide at structuring the p6opaque cache layouts :) 22:20
so maybe just going to follow it and see where it needs fixing
TimToady convergence++
audreyt although pdd15 has this highly strange removeattribute opcode 22:22
that MO is currently not happy about
do we actually ever expose that in perl6?
it seems as dubious as removing a lexical variable.
TimToady maybe they need it to support ruby? 22:23
does the recent variadic context() call look sane to you?
audreyt hm. 22:25
can't really say I like it 22:26
would prefer context(Method;Method)
to context(Method,1,Method)
allbery_b ?eval 1
pasteling "TimToady" at 71.139.25.231 pasted "link failure" (49 lines, 5.4K) at sial.org/pbot/23428 22:27
evalbot_r15597 pugs: user error (*** *** Can't modify constant item: VUndefā¤ at <prelude> line 781, column 9-46ā¤ <prelude> line 781, column 9-46ā¤ at)ā¤
22:28 ozo_ joined
audreyt TimToady: rm -rf dist/build/ 22:28
it's fixed in GHC trunk :/ 22:29
(incremental build bugs)
TimToady well, looks like it's gonna rebuild everything, so I'm thinking of doing some sleepsmoking.
short night < DST change āˆ“ nap & 22:30
audreyt sounds good. I'll sleep too
ruby doesn't seem to allow classwide removal of an attribute from all instances 22:32
22:32 Psyche^ is now known as Patterner
pasteling "evalbot_r15597" at 194.145.200.126 pasted "Pugs build failure" (545 lines, 31K) at sial.org/pbot/23429 22:33
allbery_b ?eval 1
moritz_ allbery_b: the answer is 1 Bool::True ;-) 22:34
allbery_b heh
audreyt still rebuilding
allbery_b just wants to see if it'll update to 166<mumble> 22:35
which I'll do later tonight when the current smoke (r15585!) finishes
er, 156*
svnbot6 r15607 | audreyt++ | * t/operators/bindings/subs.t: unTODO. 22:42
r15608 | audreyt++ | * Pugs.Parser: The capture-form in parameter is :(|$x), not :(\$x). 22:45
evalbot_r15599 (no output) 22:50
svnbot6 r15609 | audreyt++ | * Pugs.Eval: .call is now .callwith.
r15610 | audreyt++ | * capture.t: unTODO; syntax fix
allbery_b hmmm 23:07
svnbot6 r15611 | audreyt++ | * "our $x" now reuses pad entry for package and lexical vars:
r15611 | audreyt++ | module Main;
r15611 | audreyt++ | our $x;
r15611 | audreyt++ | $x := 123; # also rebinds $Main::x
23:11 Psyche^ joined
svnbot6 r15612 | audreyt++ | * Pugs.Parser: Unbreak exporting. 23:13
23:15 araujo joined 23:22 rdice joined 23:24 Psyche^ is now known as Patterner 23:27 diakopter joined 23:35 stevan__ joined 23:43 putter joined, mdiep joined
putter re S05, description of : and :ratchet... * and + _always_ backtrack (it's how they know how to stop). so : doesnt cause the atom to not backtrack, it commits the concatenation/sequence/whatever _once that atom has successfully matched_. 23:49
23:50 Arathorn joined
Arathorn !eval 1 || { say "foo" } 23:50
devbot6 Arathorn: Error: "eval" is not a valid command.
Arathorn bah
?eval 1 || { say "foo" } 23:51
moritz_ ?eval 1 || { say "foo" }
allbery_b: ok, you were faster ;-)
Arathorn eheu pauvre evalbot :/
allbery_b <-- evalbot_r15599 has quit (Remote closed the connection)
:(
Arathorn in the absence of run.pugscode.org and evalbot, i guess i should take this as an omen that i should svn up and rebuild 23:52
Arathorn wonders what happened to feather
Arathorn is confused as to why 0 || do { say "foo" } requires a do 23:53
both in perl6 and perl5, for that matter :\ 23:54
putter sigh. I can see it both ways. the commit model just fits my brain better than thinking of quantifiers as non backtracking.
audreyt Arathorn: hm? 23:56
what's wrong wit
0 || say("foo")
?
Arathorn well, if i want to execute a block of code if my main statement fails
moritz_ Arathorn: use "if" ;-)
or unless
Juerd Arathorn: I'm not aware of anything having happened to feather... 23:57
00:57:22 up 98 days, 8:37, 9 users, load average: 5.22, 5.60, 5.64
Arathorn i know i could use if or unless - but there's something which makes me feel vaguely unhappy about putting my main statement as the condition of an if statement
Juerd: fair enough - i was just leaping to conclusions in the absence of both evalbot & run.pugscode.org
audreyt 0 or do say "hi" 23:58
like that?
Arathorn yup
audreyt (p6 do does not require a block)
Arathorn but why is the 'do' required at all?
Juerd audreyt: You have several pugs sessions running. If they're not shell-interactive, could you please nice them?
audreyt Juerd: done 23:59
Juerd Thank you
audreyt Arathorn: a more concrete example?
putter in ( a (?{local $x +=1; say $x;}) b )+: (?{say $x}) explaining that $x is undone on backtracting, but the atom doesn't backtrack... blech.