Hailo
view release on metacpan or search on metacpan
t/lib/Hailo/Test/TimToady.trn view on Meta::CPAN
"Are those cookies made out of real girl scouts?" --Wednesday
you need more playing time :)
yes, am admiring the weather in Houston on the telly. I suspected there was a golf tournament in Houston cuz I saw a blimp when we stopped there yesterday, and confirmed when I got home :)
well, it's nearer Humble, really
yes, all five talks went pretty well
though the one at Bloomberg was very nip-and-tuck
actually started a minute or two late because we had to run a video cable to another room
their "video wall" didn't like my laptops output, or vice versa
s/ps/p's/
anything hanging fire that I haven't noticed in my brief dips in the cyberstream?
besides junctions, of course... :)
that's how I've been thinking of it, don't know how hard it is to implement that way though
and maybe not general enough, given some of the other speculations
but maybe for 6.0 we'll just do something conservative
the specs are some unhappy hybrid of p5 and p6 pod, I suspect
groceries &
seems like cmp should be commutative, whatever it does
been thinking about cmp
I think for different types we want it to default to something dwimmy as long as consistency can be maintained
trick is not getting into a situation where three types do A < B < C < A
if the default is something like coerce to Str and then cmp, then we get a warning on undefs
though we might get a *lot* of warnings...
0 and a warning, if we stick with p5 semantics...
but something to be said for sticky undefs on that sort of thing
yes
so that's grep out undefs semantics
which doesn't help with cmp
since you don't know which way to bias it
Tene: sure, but your half motivated is better than a lot of other people's fully motivated :)
this is a volunteer effort. this includes the charismatic leaders and the purveyors of the wonderfulness of STD :)
at the moment, I'm still recovering from my last charismatic roadtrip to purvey
charismatic purveyors have to be especially on guard from burnout
those of us working full tilt on getting to Christmas tend to view these things as good but not on the critical path
and when we do get to Christmas, there will be plenty of motivation to do the other things
but at the moment we're still in passion week, so things look pretty grim from time to time :)
and we've done plenty of big splashes in the past, some of which result in negative backlash when instant gratification is not forthcoming.
so our current strategy is to keep it on a low boil
just keep mentioning p6 from time to time on perlmonks and such
this process is a lot like trying to steer an asteroid
doing it with nukes is apt to be counterproductive
just slow steady pressure in the same direction is cumulative
well, time for my Good Friday thing.
bbl &
there's nothing fancy about BUILD signatures, as long as you realize all the arguments are coming in as named args
(and that BUILD needs to be a submethod)
ack is a recursive grep
you need to set the private attributes $!foo
Ask not what Perl 7 can do for you; ask what you can do for Perl 7... :)
and since Koine Greek was invented by God to be a language in which theological truths could be expressed with mathematical accuracy, you can also use it to produce a 100% accurate translation into English. :)
sorry, my tongue seems to have become permanently stuck in my cheek somehow...
I remember one of my greek teachers one day saying, "some of you are going to be preachers, and I'll be sitting in your audience"
and you'll get up there and say "dynamai means 'dynamite'!"
if you do, I will stand up in the middle of your sermon and say "It does not!"
and sit down
dynamai simply means "I can". It's a vanilla word
most greek words are vanilla words
that lesson has stuck with me
most words are not explosives, but small tools to approach the truth
and it takes a great number of them to head off false interpretations even approximately
and there are precious few 100% accurate statements in any natural language, including Koine
but this is as it should be, because it prevents us with coming up with a formula, when the truth is something that can only be discovered by living it
this does not stop people from coming up with formulas for success continually, of course :)
but we should not be fooled by them in either a theological realm or a programming realm
the error is certainly peculiar, but it should be complaining that it cannot find method .sound
so maybe it just printed the wrong string
rakudo: class Cow { has $.sound is rw; submethod BUILD () { $!sound = 'moo'; }; }; say Cow.new.sound;
you certainly can't call .sound with a private attribute
rakudo: class Cow { has $.sound is rw; submethod BUILD ($a) { $!sound = 'moo'; }; }; say Cow.new.sound;
rakudo: class Cow { has $.sound; submethod BUILD ($a) { $!sound = 'moo'; }; }; say Cow.new(:a<arf>).sound;
rakudo: class Cow { has $.sound; submethod BUILD (:$a) { $!sound = 'moo'; }; }; say Cow.new(:a<arf>).sound;
rakudo: class Cow { has $.sound; submethod BUILD (:$!a) { }; }; say Cow.new(:a<arf>).sound;
rakudo: class Cow { has $.sound; submethod BUILD (:$!sound) { }; }; say Cow.new(:sound<arf>).sound;
rakudo: class Cow { has $.sound; submethod BUILD (:$sound) { $!sound = $sound; }; }; say Cow.new(:sound<arf>).sound;
rakudo: class Cow { has $.sound = 'woof'; submethod BUILD (:$sound) { $!sound = $sound; }; }; say Cow.new(:sound<arf>).sound;
well, perhaps BUILD isn't entirely up to snuff yet in rakudo
I suspect they know it already :)
several of the things I tried should have worked
there was some discussion of it several days ago, i think
though it doesn't make sense to declare a $!sound is rw, since the rw is what is applied to the (non-existent) accessor
rakudo: class Cow { has $.sound = 'woof'; }; say Cow.new(:sound<arf>).sound;
rakudo: class Cow { has $.sound = 'woof'; }; say Cow.new.sound;
well, that much works at least
but I think rakudo's .new is faking it at the moment
night, thanks
likely... :)
adding methods to existing classes is kinda evil. we call it "monkey patching"
and then you use "augment Str {...}"
though nobody implements that yet
diakopter: nevertheless, the current approach is the least worst way to do it, and consistent with other quote constructs, and very easy to work around if you're unsure by doubling or tripling, or by using a different character.
and the mechanism is primarily intended for in-line comments in any case, not multi-line, and it's pretty easy to see if there's potential interference
in case of error, the error message will be fairly indicative of the nature of the problem
if we required people to use curlies, that'd be one thing, but people can use any brackets they like
and the bottom line is that ignoring nesting also producing the wrong result
*produces
so the issue devolves into "Doctor it hurts when I do this..."
the fun third, likely
some people's idea of fun is to do the hard, necessary third :)
std: .=flip
it will never end
depends on how the buffering works
and the implementation of say
I would not expect say to do a join
if it's implement by just fprintfing each value, then flushing on newline, you'll still get intermediate results
when the buffer fills
it's likely the stringificaiton of 1..* will "go meta"
std: 42 ? 43 : 44
std: 42 ?? 43 : 44
std: 42 ?? 43 :: 44
'length' is underloaded
std; my @a; @a.blurfldy
looks like I kill std:
*killed
std: length('ouch')
std: use v5; length('retroactive murder')
std: say [*|+] 1,2,3
std: our $count; multi foo (Str $x where { ++$count } is cached) { say "foo!" }; foo("baz"); say $count;
std: our $count; multi foo (Str $x where { ++$count }) is cached { say "foo!" }; foo("baz"); say $count;
rakudo: our $count; multi foo (Str $x where { ++$count }) is cached { say "foo!" }; foo("baz"); say $count;
std: say [=>] <a b c d>
std likes it
LylePerl: whatever we come up with has to support both one current dir for the whole process (Unix model) or a separate current directory for any dynamic scope that overrides the current directory, which supports things like an apache server running ...
the latter has to have some support from with IO, of course
t/lib/Hailo/Test/TimToady.trn view on Meta::CPAN
I didn't quite get to the point of teaching use how to pull the .pm's .yml back in, however
that's for tomorrow's airplane ride, I guess, and then I can kick Test and DEBUG out of CORE.setting
it has it's ups and downs
it's not done yet :P
KyleHa: a capture containing a single item will behave as that single item in scalar context
std: 72
they're kinda described all over the place
I recommend a recursive grep of the Spec dir
well, I'm only going to get 4 hrs of sleep now, so I'd better try to zzz off
stupid how you have to get up early to fly west to a later time zone...
std: 72
std: Num::pi
std: pi
strange that it exports pi and not Num::pi
oh well, something else for tomorrow
zzz & # thunk
hmm, I'm thinking constant wants to be "our" rather than "my", actually
otherwise, after class Num { constant pi is export = 3; }, you can get to pi but can't get to Num::pi
std: Num::pi
std: pi
std: Num::pi
std: Num::pi
std: Num::pi
hmm, need to force recompile of setting before that'll work
well, they're boarding, so I'll have to shut down soon
bbl &
strange day when I write for the chatterbox before I even backlog #perl6 :)
s/write/write spec/
that's more or less what the importer in Cursor does, with an attached symbol GLOBALish that has the module'd idea of GLOBAL
's
exports come from MY::EXPORT::DEFAULT and such
so I think it should work
phone
in Cursor I don't get the top symbol from GLOBAL:: at all, I get it from the lexical scope's alias of whatever the module name is, so 'my module Sense' works okay (at least for that purpose)
and certainly CORE.setting starts out as 'my module CORE'
I
I'm sure that what S11 has will need some fine tuning, yes
feel free to tweak it closer to what you think the primitives are
presumably
unless :ALL really means :DEFAULT :NONDEFAULT
or "just check the symbol itself to see if it's marked 'export'"
which is how Cursor currently implements it
I don't really do :ALL yet though
dunno, in Cursor the package is curently complete passive, so STD's model is a bit suspect that way as well
*currently
but that's partly because everything is passive in STD so far
everything STD does so far is without any BEGINish semantics
so things like enums and import lists are just faked
seems fair to provide that chance, especially if we want to have policy modules
roger
hmm, seems to have change from functional to procedural :)
*changed
I will glare at it a while and see how it works out in Cursor, then we'll refine it s'more
but for now, shower &
except I didn't name them sigils. I think it was MJD that came up with that.
I called them "funny characters"
funny strange
'course, strange things make me laugh, but that's neither here nor there
so is Victoria Winters
ruoso: re S11, it's probably going to take me the rest of the day to figure out how it really works
but there are certainly problems with the present formulation
it's not well-typed
the current Cursor approach abandons the $name ~ '::' hack
it should be more multi-dispatched, probably
and it ignores the distinction between shortnames and longnames
among other things :)
in STD/Cursor, types are always just barewords in the symbol table, pointing to a stab object which contains a stash
and the :: postfix will essentially just call .stash on the type object to get the hash
bbl &
S06-signature, I'd guess
since implicit @_ is really a (*@_) sig in disguise
bloat away
rakudo: :()
rakudo: :$a
rakudo: :$_
std: use Test; ok
I don't know what you mean by "treats"
yes, but why would this be a problem?
pmichaud: perhaps, after verifying that we have an opener of some sort, we just parse a term there to pick up circumfix: and quote:
or we go as far as to reclassify <>-style quotes as circumfixes, and just call <circumfix>, maybe
pmichaud: note that 'is foo[]' is also affected, since that :foo[] in disguise
*that's
I feel conflicted
with s/post// we do lose <a b c> as a type contraint, oh well :)
syntactically, any "value", and quotes are values, so you should be glad <> are going to be circumfixes now
which are not very value-ish
I'm trying to think of the name of the type that is more general than Capture :)
(1,@a,:b).elems == 3
yes, I've had various names for the syntactic list type
in Perl 4 Camel it was called LIST
but that's confusing
I've been hashing over names with Gloria
linguistically, it's a Series, but that's a word that doesn't have a good plural
and most other terms are badly overloaded.
yes, that's one of my options
and basically a Seq mutates into a Capture when used as an arglist
it's one of the 3 big design issues I've been working on :)
well, when the compiler notices an arglist, it wants to pull out nameds at compile time
so that type has some name, at least internally
we could finesse it, yes, but then it wouldn't be a Seq anymore :)
I'm not terribly excited about Series though
I've called them variously Group, OO, XX, SX...
even though about renaming Object as O at one point, but decided that would be too confusing with 0
though O would be a great name for "undef" :)
yeah, except we've still rather overloaded the meaning of "list context" there
does it, or does it not, include the nameds?
that's coercion to capture
coercion to flat list might do the other thing
but it doesn't quite fly that way either
but yes, fundamentally there's a raw syntactic list floating around that represents a sequence of objects
and the meaning of that is more contextual even than captures
and that's what parens create
at least the distinction is maintained until the Series is resolved
into capture or not
maybe they're Raw and Cooked :)
sunny-side up or scrambled
maybe you'd better go on your errand :)
argh, I actually thought of that one yesterday
Obviously we should name tham Jacquards then :)
pmichaud: at the moment I'm thinking "Parcel", for paren cell, or some misspelling like Parsel, for paren selection, or parse list, or parse morsel, or some such
anyway, something that is an item that you don't know what's inside till you unwrap it
( run in 2.001 seconds using v1.01-cache-2.11-cpan-524268b4103 )