Summer of Perl | 6.2.12 released! | paste: sial.org/pbot/perl6 | pugs.blogs.com | pugscode.org | pugs.kwiki.org | www.treehugger.com/files/th_images/paradigm.jpg Set by nothingmuch on 12 July 2006. |
|||
audreyt | TimToady: "unless the class marks its constructor as a macro maybe " | 00:05 | |
pugs already do that :) and I think it's a sane way out | 00:06 | ||
coupled with the runtime-call-to-¯o-does-a-resplice rule | |||
that means saying class Foo{} always registers a macro &Foo | |||
that can be mmd'ed to serve as coercer/constructor | |||
and in the nullary case it just dissolves into ::Foo in compile time | 00:07 | ||
luqui | audreyt, does "resplice rule" mean what I think it means? | ||
audreyt | "if you give me nothing and want a Foo back, well I'll get you a prototype" | ||
luqui | It can't... | ||
audreyt | luqui: | ||
If you call a macro at runtime, the result of the macro is automatically | |||
evaluated again, so the two calls below print the same thing: | |||
macro f { '1 + 1' } say f(); # compile-time call to &f say &f(); # runtime call to &f | |||
S06 line 2172 | 00:08 | ||
and welcome back! | |||
luqui | oh. good. | ||
thanks | |||
I was worried that it recompiled the source code in that area or something | |||
00:09
cm_ joined
|
|||
audreyt | er no. | 00:09 | |
luqui: have you read misc/pX/Common/mmd-draft.txt ? | |||
luqui | nein | ||
audreyt | it's taking your MMD::Pure | ||
and tackle the multilevel tiebreaking | 00:10 | ||
luqui | kay | ||
I'll look it over | |||
audreyt | as well as giving a rule for "less than" for roles and constraints | ||
ignore the rants at bottom of it | |||
luqui | let's see if I can convince svk to sync... | ||
audreyt | I wonder if C::MM::P can be updated to use that | ||
or reflect it at the Sub::Multi side | 00:11 | ||
in any case that would give v6.pm full multidispatch support | |||
luqui | neato | ||
audreyt | # svn.openfoundry.org/pugs/misc/pX/Co...-draft.txt | ||
luqui | hmm... svk is stalling | ||
audreyt | just use http whilst you wait for it :) | 00:12 | |
I need to sleep some more, but I'm _so_ happy that you're back :) also the dreaded Eval.Var (and most of adhoc ASt.Internals) is going away now | |||
since we solved the expression problem in pugs core :) | 00:13 | ||
luqui | yummy | ||
00:13
kanru joined
|
|||
audreyt | using the technique in lambda-the-ultimate.org/node/1657 | 00:13 | |
lambdabot | Title: Software Extension and Integration with Type Classes | Lambda the Ultimate | ||
audreyt | bbiab... | ||
luqui | hmm, the voting take is weird... | 00:21 | |
I'll have to run through the algorithm on paper to grasp it | |||
I like the "any signature is valid" business... a lot. | 00:23 | ||
00:28
nekokak joined
|
|||
stevan | luqui has returned! | 00:30 | |
luqui stands tall with his crown | 00:31 | ||
what version is the mm on now? | |||
stevan | luqui: it has mutated into a Moose :) | ||
probably version 10 or 15 | |||
luqui | I'm finding that not much has changed in design land, but as usual, implementation land is going strong | 00:32 | |
stevan | luqui: well audreyt is now (more officially) thoroughly entrenched in the design | 00:33 | |
luqui | that's good | 00:34 | |
00:34
cm_ left
|
|||
luqui | she usually agreed with me about design decisions (after a little chatting), and she is much more persuasive than I am :-) | 00:34 | |
stevan thinks audreyt justs bats her eyelashes and smiles to get what she wants ;) | 00:35 | ||
luqui: we missed you at YAPC, nothingmuch was freeloading this time | 00:36 | ||
luqui | heh, sorry I couldn't have been there to deprive him the privilege | ||
during YAPC my friend max was in town. I had to play some music with him. | |||
stevan | cool | 00:37 | |
so are you back? or just stopping by ? | |||
no pressure :) | |||
luqui | Well, I can't say at this point, because school is about to start | ||
but I seem to be interested in language design again | |||
so I'm back barring external difficulties | |||
stevan | cool | ||
luqui | I'm glad I took the summer hiatus, because it produced our IGF (independent games festival) entry | 00:38 | |
stevan | nice | 00:39 | |
what kind of game? | |||
luqui | action/arcade | ||
with beautiful graphics | 00:40 | ||
stevan | gotta link? | ||
luqui | got a linux or windows box? | ||
I don't have a mac around, so it doesn't compile on mac yet. | 00:41 | ||
anyway, soylentsoft.net | |||
"Ichor" | |||
lambdabot | Title: Soylent Software | ||
luqui | thanks lambdabot. I didn't know. | ||
stevan | hmm no,.. just mac | 00:42 | |
looks pretty cool though | |||
luqui | you should see it move :-p | 00:43 | |
audreyt | a liquid-war clone? | ||
luqui | not really... | ||
stevan | luqui: the only windows box I have does not even come close to those specs :( | ||
luqui | it plays much more actiony than strategically | ||
yeah, it's a cpu guzzler, unfortunately | |||
audreyt | liquid-war is actiony too | ||
but graphics is miles better in ichor | 00:44 | ||
luqui | that's the one with tons of little particles that try to go toward your cursor? | ||
audreyt | wow, Galactic Flotsam. | ||
yes. | |||
luqui | I always put that in the "strategy" category | 00:45 | |
but I also never got very good at it | |||
yeah, galactic flotsam never went anywhere | |||
audreyt | I used to call it "real-time Go" | ||
luqui | I'm hoping that we pick it back up. a cellular automaton RTS :-) | ||
audreyt | amazingly cool | 00:46 | |
you can write a book! "A New Kind of RTS" | |||
ad have wolfram publish it... | |||
luqui | lol | 00:47 | |
does it have to be 2,000 pages? | |||
audreyt | :D | ||
luqui | time for CU gamedev club. back in a few hours. | 00:48 | |
nice seeing you all again. | |||
audreyt | luqui++ # we missed you | ||
stevan | luqui++ # i second that one | 00:49 | |
00:49
luqui left
00:52
hikozaemon joined
|
|||
froh-doh | how necessary is hs-plugins for one that wants to play a bit with perl6? | 00:52 | |
ugh, maybe my english is a bit too italian, I'll try to rephrase | 00:53 | ||
svnbot6 | r12020 | rodi++ | Test for cascading argumentless methods in string interpolation. | ||
froh-doh | do I need hs-plugins to play with pugs? | 00:54 | |
audreyt | no | ||
wouldn't matter | |||
froh-doh | wonderful :) | 00:55 | |
I feared that I had to download each single file from www.cse.unsw.edu.au/~dons/code/hs-plugins/ | |||
lambdabot | Title: Index of /~dons/code/hs-plugins | ||
audreyt | never mind... the warning is now removed | 00:56 | |
svnbot6 | r12021 | audreyt++ | * haskell embedding is now enabled only with PUGS_EMBED=haskell | 00:59 | |
froh-doh | sorry for boring, but it warns me to install the GNU readline library if I want the support, and I already have it. Am I missing something? | 01:05 | |
(apart from readline support, of course ;) | |||
audreyt | which platform are you on? | 01:13 | |
if it's mac, the osx readline is not gnu readlin | |||
froh-doh | sorry, I'm a moron. I'm on linux, debian sarge | 01:16 | |
01:23
weinig joined
|
|||
audreyt | libghc-cvs-readline-dev ? | 01:24 | |
not sure | |||
I havn't had experience in ghc+debian myself | |||
you can build pugs still without readline | |||
froh-doh | audreyt: I couldn't wait, I'm in the make test phase ;) | 01:25 | |
audreyt | lol :) | ||
(if you checkout from trunk, tests are expected to fail) | |||
froh-doh | no, I'm going the plain "package" path to start | 01:26 | |
audreyt | 124 fail and 25 unexpected succeess here | ||
oh ok. | |||
froh-doh | otoh, I had a couple of pod errors in parrot's package :) | 01:27 | |
what's mystical is that the test suite is *already* in perl6 | |||
audreyt | er, sure, we are a perl6 implementaiton after all | 01:28 | |
how would you test a perl6 implementation if not by tests written in perl6? :) | |||
froh-doh | :) | ||
audreyt | actually, to some degree the tests define the perl6 as we know it... | 01:29 | |
anyway, try check out the svn repo while you run the tests :) | |||
# search.cpan.org/dist/Perl6-Pugs/lib...c/Hack.pod | |||
lambdabot | Title: Pugs::Doc::Hack - How to hack on Pugs - search.cpan.org | ||
audreyt | also, what's your email addr? I'll send you a commit bit in the case that you'd like to add new tests or fix stuff or add docs or contrib examples | 01:30 | |
froh-doh | flavio [at] polettix.it | ||
audreyt | ooh, another flavio :) | 01:31 | |
froh-doh | really? It's not so common a name (even if one of my best friends is named Flavio as well) | 01:32 | |
cool | |||
audreyt | sent. welcome aboard :) try adding yourself to the AUTHORS file as your first test commit | ||
froh-doh | lol | ||
rodi | froh-doh: audreyt did the same thing to me, and now when I'm not rocking my baby to sleep... | ||
froh-doh | some water will have to pass below bridges... | ||
rodi | yeah, that's what we all say... at first ;) | 01:33 | |
audreyt | the first commit is always free! | 01:34 | |
froh-doh | uhm, I thought I could substitute svn with svk in svn co svn.openfoundry.org/pugs | 01:35 | |
lambdabot | Title: Revision 11971: / | ||
audreyt | (* all commits are free; but the first commit is more free than others) | ||
that is correct | |||
you can hit enter a few times | |||
froh-doh | maybe my svk is a bit dated, then | ||
ah, ok, so I've to mirror? | 01:36 | ||
audreyt | well, depends. if you can wait for an hour or so | ||
then just hit enter all the way | |||
froh-doh | lol | ||
audreyt | if you are ina rush, type "h" instead of "a" | ||
when it asks whether to mirror all revisions | |||
but ifit's a stable net connection, let it finish mirroring gives you very fast "svk log" after wards | |||
since it doesn't have to go to server to ask for log | |||
froh-doh | is it a lot of stuff in disk space terms? | 01:37 | |
audreyt | 364mb | 01:38 | |
froh-doh | "Retrieving log information from 1 to 12021" ! | 01:40 | |
01:41
dolmans joined,
weinig joined
|
|||
audreyt | mm palindromic revnnum | 01:41 | |
rodi | mm, and the date is 8/8. I'm sure this means something. | 01:43 | |
01:46
fftzen joined
|
|||
fftzen | does perl 6 support variable length look behind assertions? | 01:47 | |
audreyt | ?eval "Hello, world" ~~ m:P5/(?<=Hello|Hi), (world)/ | 01:48 | |
01:48
evalbot_11989 is now known as evalbot_12021
|
|||
evalbot_12021 | Match.new( ok => Bool::True, from => 5, to => 12, str => ", world", sub_pos => (Match.new( ok => Bool::True, from => 7, to => 12, str => "world", sub_pos => (), sub_named => {} ),), sub_named => {} ) | 01:48 | |
audreyt | ?eval "Hello, world" ~~ m/<after (Hello|Hi)>, (world)/ | 01:49 | |
evalbot_12021 | *** Cannot parse PGE: <after (Hello|Hi)>, (world) *** Error: Cannot find the parrot executable in PATH Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} ) | ||
audreyt | fixing that :) | 01:50 | |
fftzen: but the answer is "yes" | |||
mauke | ?eval "Hello, world" ~~ m:P5/(?<=(\w+))$/ | ||
evalbot_12021 | pugs: user error (PCRE Regular Expression Error: (?<=(\w+))$ ^ lookbehind assertion is not fixed length) | ||
audreyt | mauke: I think PGE got that done | 01:51 | |
mauke | what are the semantics? | ||
audreyt | yes, PGE supports that | 01:52 | |
fftzen | ?eval "abaacadad" ~~ m/(?<=a.*a)a(.*?)ad)/ | 01:53 | |
evalbot_12021 | *** Cannot parse PGE: (?<=a.*a)a(.*?)ad) *** Error: Cannot find the parrot executable in PATH Match.new( ok => Bool::False, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} ) | ||
froh-doh | TIMTOWTDI -> TAWTMWTDI | 01:54 | |
audreyt | fftzen: syntax is | ||
"abaacadad" ~~ /<after a.*a>a(.*?)ad/ | |||
or for noncapturing assertion | |||
"abaacadad" ~~ /<?after a.*a>a(.*?)ad/ | |||
I'm building parrot on feather; in a couple mins evalbot will grok that | 01:55 | ||
froh-doh | ?eval my $ref = <Hello, world>; my @arr = <Hey, you!>; my $nref = \@arr; say for $nref[0], $nref.[0], @arr[0], @arr.[0], $ref[0], $ref.[0] | 01:56 | |
evalbot_12021 | OUTPUT[ ] undef | ||
audreyt | meanwhile, at my local pugs shell | 01:57 | |
froh-doh | I prefer the command line response | ||
audreyt | pugs> "abaacadad" ~~ /<?after a.*a>a(.*?)ad/ | ||
Match.new( | |||
ok => Bool::True, | |||
from => 3, | |||
to => 7, | |||
str => "acad", | |||
sub_pos => | |||
(Match.new( | |||
ok => Bool::True, | |||
from => 4, | |||
to => 5, | |||
str => "c", | |||
sub_pos => (), | |||
sub_named => {} | |||
),), | |||
sub_named => {} | |||
) | |||
fftzen | cool | ||
cmarcelo | audreyt: hey! re: judy array patch.. only six tests don't pass, they are related to HTML entities and t/xx-uncategorized/unicode.t ... i'll change the names Map -> CStringMap, Map2 -> IntMap, what about MapSL? =P or Map => CStringLenMap (ugly!) and MapSL => CStringMap? | 01:58 | |
froh-doh | thank you all, I'm going to sleep while the test suite runs at full-fan and svk syncs :) | 01:59 | |
audreyt | cmarcelo: Map is not a Map it's a Hash | ||
haskell Map guarantees ordering :) | |||
cmarcelo | audreyt: also, do you have any idea why "my @a; @a[999999999]=2; say @a.elems" doesn't go direct to array_fetchSize (it's constant time to get the size in TVar, but here it hangs)? | ||
audreyt | cmarcelo: so I think IntMap and StrMap and Hash | ||
cmarcelo: yes, I think I know hwy | 02:00 | ||
in src/Pugs/Prim.hs | |||
op1 "List::end" = op1Cast (VInt . (-1 +) . (genericLength :: VList -> VInt)) | |||
op1 "List::elems" = op1Cast (VInt . (genericLength :: VList -> VInt)) | |||
I cast it to a haskell List and then count the length :D | |||
clearly it should say array_fetchsize there | |||
if you can patch that to follow the lead of "keys" | 02:01 | ||
and add sizeFromVal in src/Pugs/Prim/Keyed.hs | |||
that'd be great | |||
otherwise I'll look into it this afternoon | |||
that is to say in 5 hours | |||
froh-doh: g'nite! | 02:03 | ||
cmarcelo: also, why do you use JudySL instead of JudyHS to model IHash? | |||
wouldn't that be 1)slower 2)forbid null bytes in hash keys? | |||
I'd prefer to use JudyHS if possible | 02:04 | ||
cmarcelo | audreyt: don't get "follow the lead of keys".. could you rephrase? =P I'll try to patch as much as I can... =o) | 02:05 | |
audreyt | follow the lead of line 535 of Prim.hs | ||
op1 "keys" = keysFromVal | |||
cmarcelo | oh i see. | ||
audreyt | so implement "elems" as | 02:06 | |
op1 "List::elems" = sizeFromVal | |||
and add the sizeFromVal in Prim/Keyed.hs | |||
by do_array it with array_fetchSiez | |||
improvise :) | |||
cmarcelo | oka | ||
i'll change to JudyHS.. i was just being lazy as last patch was using SL because of old Iter troubles =P | 02:07 | ||
audreyt | in any case... if its just those 6 tests that fails | ||
then I know exactly why :) | |||
once it's switched to HS with VStr as keys | |||
then the problem should go away | |||
cmarcelo | audreyt: utf-8 allows \0 in its encoding ? | ||
i mean | |||
audreyt | aye it does | ||
$hash{"this key has \0 in it"} = 1 | 02:08 | ||
JudyHS would work | |||
JudySL will break horribly | |||
cmarcelo | in middle of a string | ||
so probably that's it =P | |||
audreyt | I think it's a missing decudeUTF8 | ||
but that's fine... as soon as it's 1)renamed 2)changed to JudyHS | |||
please commit ahead | |||
I'll fix the utf8 thing if needed | 02:09 | ||
cmarcelo++ # _so_ happy to see this landing | |||
02:09
hexmode joined
|
|||
cmarcelo | audreyt: sure about committing? i prefer come up with a patch and if it looks sane, find a way to build judy (and HsJudy, which is easier) in util/build_pugs.pl | 02:10 | |
audreyt | HsJudy can be built just like fps | ||
just add it alongside fps | |||
cmarcelo | but and spinclad's judy [it isn't on judy-trunk yet, afaik]? | 02:11 | |
s/but and/what about/ | |||
audreyt | it isn't... | ||
arguably HsJudy should build it along with that | |||
using Cabal's support for configure scripts | |||
hm | |||
I'm not 100% sure. | |||
cmarcelo | well | ||
audreyt | as long as it can be built automatically in your setup | 02:12 | |
it's okay to break everybody else's and commit | |||
as it'll make it easier for others to unbreak it | |||
"it's okay to break the build for other people as long as it works for you :)" | 02:13 | ||
cmarcelo | in next hours I'll come up with HS, renames etc (don't believe in my timezone btw)... then I look for building things (may integrate judy code inside mine, if "lawyers" doesn't complain, like HsSyck).. | ||
audreyt | I think cabal allows specifying c-source-dir and include-dir outside your path | 02:14 | |
but if copying the dir over is easier, go ahead and do that :) | |||
it's in third-party/ space, the lawyers explicitly don't care :) | |||
cmarcelo | cool =) | 02:15 | |
audreyt | (at least until we release the tarball; we'll figure something out at that time) | ||
cmarcelo | i'll shower >> make food >>= eat, see you later & | ||
audreyt | mm monadic life | 02:16 | |
audreyt goes to $job as well | |||
fftzen has hit a dead end with php and decides to go to sleep to dream about perl | 02:17 | ||
02:59
justatheory joined
03:16
Schmoople joined
|
|||
svnbot6 | r12022 | fglock++ | v6 - <ws> is split into several subrules for pod, comments | 03:16 | |
03:23
drbean joined
03:24
mugwump joined
03:36
tokuhirom joined
04:14
xern joined
|
|||
svnbot6 | r12023 | fglock++ | v6 - added a %quote table to Pugs::Runtime::Common | 04:20 | |
gaal | dduncan: is the Buf type what you want? See L<S06/Built-in types> | 04:26 | |
audreyt | ?eval 1 ~~ /<after .*>/ | 04:27 | |
04:27
evalbot_12021 is now known as evalbot_12023
|
|||
evalbot_12023 | Match.new( ok => Bool::True, from => 0, to => 0, str => "", sub_pos => (), sub_named => { "after" => Match.new( ok => Bool::True, from => 0, to => 0, str => "", sub_pos => (), sub_named => {} ) } ) | 04:27 | |
audreyt | cool, pge is back | ||
gaal | hey audreyt | 04:28 | |
audreyt | yo | ||
audreyt @ job | |||
gaal | <- just woke up | ||
dduncan | gaal, if you're referring to my p6l post about the name of the Str type, then Buf is a separate matter | 04:30 | |
I was saying that the name for a string of characters ought to be something more specific-sounding than Str is | 04:31 | ||
because historically a "string" had a variety of uses and wasn't specific to characters | |||
yes, I know that if you look at S06, the documentation is clear about what the types mean, but that doesn't mean the names can't be improved, such that referring to the documentation is less necessary to understand a program | 04:32 | ||
gaal | dduncan: and Buf in p6 is a more indexy way of looking at that | 04:33 | |
maybe I don' | |||
04:33
thestarslookdown joined
|
|||
gaal | t understand the concern. | 04:33 | |
audreyt | "string" is overloaded I agree | ||
Str however is not :) | |||
dduncan | does not "Str" evoke "string" in people's minds? | ||
audreyt | marginally | 04:34 | |
but if we say "Str is always unicode" | |||
then it'll stick | |||
instead of "string is always unicode" | |||
which probably is adding more confusion | |||
dduncan | regardless, looking at the bigger picture, I am thinking it would be useful to have distinct immutable types for character strings and bit strings, these 2 in addition to the mutable Buf type | ||
audreyt | bit strings? | ||
what is a bit string but a Buf? | |||
dduncan | in other words, an immutable chunk of binary data | 04:35 | |
audreyt | my intention is that the perl5 "byte string" is renamed to Buf | ||
and perl5 "unicode string" is renamed to Str | |||
and disallow implicit coercion between the two | |||
dduncan | yes, but Buf is mutable | ||
I would like to have a native type for bit strings such that === will do value comparison between them | |||
audreyt | you'll also note that I disagree with larry in that I think Buf should be immutable :D | ||
and mutability should be done thru compactly encoded arrays | 04:36 | ||
dduncan | I think that Buf is a perfectly good name for a mutable type, since a "buffer" suggests a larger space where parts of it are regularly added to or changed separately | ||
gaal | audreyt, did you see the Val stuff? `1` gets to MkInt if I twist the Parser's arm behind its back. | 04:37 | |
dduncan | my current suggestion to change Str to something else is meant to pave the way for distinct immutable character and bit strings | ||
audreyt | Seq[Byte] | ||
gaal: I see that :) cool! | |||
dduncan | if both of those are strings, then naming just one of them Str is ambiguous | ||
audreyt | though what I meant for `1` + `1` was | ||
string->coerced to num | |||
but cool still :) | |||
dduncan | in fact, good names would probably be CharStr/Str::Char and BitStr/Str::Bit , but I seem to recall that we want all our built-ins to be single words for aesthetics | 04:38 | |
gaal | but by the time it's in 'expr' in the parser, it's a VStr, so the coersion is in old haskellspace | ||
because this is after all a hijacked quoting rule | |||
dduncan | see, in the general sense, a string is just a compact array of values of any type | 04:39 | |
and in practice, character and bit strings are used most commonly | |||
to just call one a string (str) seems inappropriate | |||
audreyt | dduncan: actually... our strings a a bit more | ||
they are ropes | |||
or should be ropes | |||
in that it's like List, it has fragments | 04:40 | ||
instead of a compact storage | |||
i.e. concat on two Str possibly does not malloc for more | |||
gaal | that's entirely the backend's business, isn't it? | ||
dduncan | I just say compact in a conceptual sense ... they are like arrays but we treat them like single units | ||
audreyt | it is, but that means we cannot expose a compact-array interface | ||
it also means mutability must be forbidden | |||
so backend can change layout behind the scene | 04:41 | ||
dduncan | but you can ignore the 'compact' part of my statements ... | ||
audreyt | k | ||
dduncan | the point is, I think it is important to have built-in immutable string types for both characters and bits | ||
audreyt | again, what's wrong with Seq[Byte]? | ||
(Seq of Byte) that is | 04:42 | ||
dduncan | the problem here is related to ... what's the word? ... | ||
gaal | audreyt: so re `1`, I don't understand where you were aiming for the decision that this is to be taken as a Val.Int and not a Val.Str to be | ||
dduncan: ergonomics? | |||
dduncan | two things that should be treated the same but are treated differently | ||
gaal | discrimination? | ||
distinction? | |||
dduncan | same, meaning of equal importance or access | ||
gaal | conflation? | 04:43 | |
dduncan | basically, one should be able to use strings of bits with the same terseness of code as one can use strings of characters | ||
gaal | confusion? | ||
audreyt | gaal: I was aiming for adding coercion to num to PureStr | ||
gaal | pestilence? | ||
audreyt | gaal: and expose it | ||
gaal: that is | |||
`foo` + `123` | |||
should return 123 | |||
dduncan | I shouldn't have to say Seq[Bit] for one and just Str for the other | ||
audreyt | `123foo` + `456bar` | ||
should return 579 | |||
dduncan | on that note ... | ||
audreyt | dduncan: but Str is not Seq[Char] | 04:44 | |
so it warrants a new name | |||
gaal | audreyt: that means we need a literal parser in Val | ||
audreyt | your idea of immutable bitbuffer however is eally just Seq[Byte] | ||
gaal: nono | |||
gaal: `foo` constructs a PureStr | |||
`123` also a PureStr | |||
dduncan | but it is valid to treat it as a sequence of unicode characters, is it not? | ||
gaal | what does `1` | ||
audreyt | I just want them to be able to be coerced to nu | ||
gaal | oh ok | ||
audreyt | num | ||
gaal | in + | ||
audreyt | dduncan: yes, it is conceptually okay to cast between it and Seq[bit21] | 04:45 | |
I mean uint21 | |||
dduncan | a Str is conceptually a string of >= 0 unicode chars | ||
audreyt | but concrete builtin class not only govern interface | ||
it also govern storage | |||
dduncan | you're dragging in implementation issues that I'm trying to avoid | ||
audreyt | and the storage strategy of Seq and Str is quite different | ||
uhm, if not for implementation issues, we wouldn't have Array | 04:46 | ||
everyone will just use Hash of Int | |||
or OrderedHash or Int | |||
dduncan | I'm talking about the uint21 thing equaling a char | ||
audreyt | also, Str has methods such as .uc | ||
and Seq[bit21] wouldn't | |||
which is again implementation issues | |||
but it shows in surface | |||
dduncan | but you should be able to use the various bit manipulating operators on a bit string | 04:47 | |
audreyt | hm | ||
and Seq[Byte] won't neccessarily give you that | 04:48 | ||
or would it? | |||
dduncan | bit strings are meant to use, for example, with arbitrary chunks of data whose internal structure we don't know, and has to be maintained exactly and without interpretation ... | 04:49 | |
audreyt | say, if as in ruby, we provide | 04:50 | |
dduncan | they can also be used for arbitrary-length checksums or bit transformations of data | ||
audreyt | Buf.freeze | ||
after which you cannot change the content | |||
would that be good enough? | |||
dduncan | this would be bias showing through, but I would like for something equivalent to the concept of a blob that all databases have, for storing arbitrary unknown-format binary data for later retrieval, and that might be operated on with various bit operators like checksums or encryption | 04:52 | |
all data types in databases are immutable, and Perl 6 already has equivalents of all the other basic types that are common ... | 04:53 | ||
namely, character strings, integers, rational numbers, and booleans | |||
audreyt | Blob is a pretty good name. | ||
thing is, though, that such things can easily be user defined :) | |||
dduncan | I consider that to be an elementary type, not something that is defined in terms of other things | 04:54 | |
it is something over which other things are defined | |||
audreyt | but as I showed, it can be defined on term of Seq[bytes] | ||
dduncan | while we could go with "blob" for a name, I don't like it in some respects because it stands for "binary large object", but what I'm looking for may in fact be small | ||
audreyt | whilst Str is quite harder (or even impossible) to define that way | 04:55 | |
mm "Bob" | |||
dduncan | also confusing the issue, though I won't go there, is that some database implementations have separate "character" and "character large object" types ... a bad idea ... I would only have one character string type, which is the same as the Str type is in Perl 6 | 04:56 | |
since that type can be of any length | 04:57 | ||
audreyt | I'd prefer that as well | ||
dduncan | similarly I want a single immutable type for a binary string that can be of any length, from zero bits to terabytes+ (as implementations support) | ||
audreyt | I wonder if we can make "buf" immutable. | 04:58 | |
if so that will fit your need | |||
maybe call it "bytes". | |||
dduncan | buf is a non-portable type | ||
audreyt | why? | 04:59 | |
it is as portable as bit. | |||
"bit". | |||
dduncan | what I'm looking for has to be an immutable conceptually low level but still abstracted type | ||
audreyt | which is pretty portable | ||
or "int32" | |||
which is again very portable. | |||
dduncan | like characters and integers are treated | ||
an int32 is not the same on different-endian systems, but an Int is the same | |||
from a user's pov | |||
and an Int is arbitrary length, which is what is desired | 05:00 | ||
the int/buf/etc types are explicitly for the hardware showing through ... the Int/Str/etc , and what I want ... do not have the hardware show through | |||
audreyt | no, not so | 05:01 | |
"int" and "uint" is specced to be hardware dependent | |||
but "int8" is always the same length | |||
as is "bit" | |||
as is "buf" | |||
the criteria of lowercase types is merely that they can be subject to compact storage | 05:02 | ||
i.e. can be stored in "unboxed" form | |||
dduncan | there must be some reason that it is common for database systems to have a built-in bit string type that is treated like a character string type ... it must be widely useful | ||
treated is perhaps the wrong word | |||
but they are both hidden from the hardware storage details | 05:03 | ||
audreyt | it is widely useful, and I wouldn't object to a immutable byte array | ||
whether they are named Seq[Byte], ByteSeq, Buf (but frozen) or buf | |||
is a matter of ergonomics :) | |||
dduncan | ergonomically, ByteSeq or Buf looks best to me ... | 05:04 | |
but a possibly mutable type should have a different name from an immutable one | |||
so using plain Buf for both is inappropriate | |||
and lowercase buf still looks like something hardware specific | |||
PerlJam | dduncan: re: it must be widely useful, it could just be widely cargo culted too ;) | 05:05 | |
dduncan | well, I think it is reasonable to have a portable/wrapped looking immutable type that looks like what all computer operations are conceptually built over ... bits | ||
it gives you the most leverage when defining your own arbitrary types | 05:06 | ||
having other types makes things easier by abstracting out common uses, like numbers and characters | |||
so it makes sense to have both bit strings and char strings and numbers and booleans, all built-in, and all looking similar as far as favoritism goes | 05:07 | ||
audreyt | "bit sequences" please :) | ||
but otherwise I agree | |||
dduncan | yes | ||
audreyt | it is not a string if you can't write your name in it. | 05:08 | |
dduncan | do you prefer character sequences as well? | ||
audreyt | :) | ||
I'd prefer just "string" | |||
gaal | cequence | ||
audreyt | or "Str" | ||
interchangeable with "character sequence" | |||
PerlJam | audreyt: does that make atoms strings? Because I seem to recall some researchers at IBM pushing around some atoms to write "IBM" :) | ||
dduncan | have a look at this: en.wikipedia.org/wiki/String_(computer_science) | ||
audreyt | PerlJam: sure, you can string atoms together... | ||
they are built from strings too | 05:09 | ||
dduncan | if you believe that, then a string doesn't have to be something you write your name in | ||
gaal | we can call them Perls! | ||
dduncan | in the generic sense | ||
audreyt | super strings ;) | ||
dduncan | "In computer programming and some branches of mathematics, strings are sequences of various simple objects." | ||
audreyt | dduncan: which is why I think "string is overloaded term | 05:10 | |
dduncan | such as characters or bits or numbers | ||
yes | |||
audreyt | and so I avoid that name altogether | ||
it's "Str" :) | |||
gaal | does mathematics have cheap branches? | ||
dduncan | and that's why I thought we should avoid "string" too, hence my p6l message | ||
audreyt | aye | ||
dduncan | but part of the issue is that I see Str as just being an abbreviation of "string", as Int is for "integer" | ||
PerlJam | perhaps I'm just used to strings-not-as-characters but I don't mind the term "bit string" and the like. | 05:11 | |
dduncan | so the problem remains for the most part | ||
audreyt | well, other mainstream languages already completed their String-means-unicode switch... | 05:12 | |
but well, I don't care much about ergonomics :) | |||
audreyt goes back to $job | |||
gaal | why doesn't this dwim? | 05:25 | |
instance ICoercible P PureStr where asNum = return . cast . read . castBack | 05:26 | ||
dduncan | hey, I just thought of something ... | ||
leaving the name of the Str type alone for the moment ... | |||
while 'Blob' has bad connotations regarding its signifying "large", we could go for synonyms of the acronym ... | 05:27 | ||
gaal | bob? # same thing w/o the large | ||
dduncan | for example, 'Lump' or 'Chunk' | 05:28 | |
TimToady | Real blobs can come in any size. | ||
dduncan | yes | ||
and I suppose I can live with the name Blob if we ignore the fact that it stands for "large object" in the same way that we ignore the fact that Str isn't quit unambiguous enough ... | |||
TimToady | And I think Blob is the closest existing thing to what you want, leaving aside the acronym | ||
dduncan | yes, that is true | 05:29 | |
gaal | Bin? Raw? Gob? | ||
TimToady | which sounds like a backronym to me anyway. | ||
dduncan | and at the end of the day, a name which is good-enough is better than nothing | ||
05:30
thestarslookdown left
|
|||
svnbot6 | r12024 | cmarcelo++ | HsJudy: | 05:30 | |
r12024 | cmarcelo++ | * Renames: (Map -> Hash, Map2 -> IntMap, MapSL -> StrMap) | |||
r12024 | cmarcelo++ | * Extracting Stringable to a separate file. | |||
r12024 | cmarcelo++ | * IntMap: Special implementations for n=1 of takeFirst and takeLast. | |||
r12024 | cmarcelo++ | * StrMap: Include a new toRevList and backend for | |||
dduncan | my main desire is simply to have the immutable non-machine-tied data type in question be built in and as terse to use as other non-collection types | ||
TimToady | well, my family's dragging me off, so later & | ||
PerlJam | dduncan: Let's call it X :) | ||
dduncan | Blob is as good a name as any we're likely to get | ||
SamB | X! | 05:31 | |
X is a bloated window system in its eleventh version and seventh revision! | |||
gaal | audreyt: I'm getting | 05:42 | |
No instance for ((:<:) PureStr String) | |||
but isn't that supposed to be derived? | |||
trying to do an asNum method in ICoercible P PureStr | 05:43 | ||
asNum x = return $ cast (n :: Double) where n = read $ castBack x | |||
the error is in the castBack call. | |||
brb | 05:44 | ||
oh probably this is better implemented with a function in Val.Str | 05:53 | ||
05:56
nirgle joined,
nirgle left
|
|||
mugwump | anyone have any pugs subversion stats? | 06:01 | |
06:10
Kattana joined
|
|||
gaal | `1`+`41` landed | 06:11 | |
svnbot6 | r12025 | gaal++ | r9130@colinux: roo | 2006-02-23 06:44:13 -0500 | 06:12 | |
r12025 | gaal++ | * Pugs.Prim: Pugs::Internals::emit_yaml prim to dump some AST | |||
r12025 | gaal++ | programmatically, analogously to pugs -CParse-YAML | |||
gaal | oh no | 06:13 | |
that's a very old change | |||
^c^c^csvk!@#%$ | |||
svnbot6 | r12026 | gaal++ | r9131@colinux: roo | 2006-02-23 06:44:47 -0500 | ||
r12026 | gaal++ | * Precompile Test.pm before running smoke tests | |||
r12027 | gaal++ | r9132@colinux: audreyt | 2006-02-23 06:54:00 -0500 | |||
r12027 | gaal++ | * s/Pugs-YAML/Parse-YAML/ | |||
gaal | hold yer updates, people | 06:16 | |
cmarcelo | gaal: what `1` syntax means? | 06:20 | |
gaal | cmarcelo: it's a crutch to access new-AST from current pugs | 06:21 | |
sec, fixing the build | |||
06:31
broquaint joined
|
|||
gaal | wow I hope I didn't break the repo | 06:33 | |
while I'm doing a clean co: | 06:34 | ||
cmarcelo: the idea is that we want a temporary way to construct new-AST values | |||
so audreyt hijacked the qx// or `` syntax, since pugs hasn't handled it anyway | |||
cmarcelo | side question: what should I do to generate src/Pugs/AST/Internals/Instances.hs ? | ||
gaal | this cosntructs a Pugs.Val.Str PureStr object | 06:35 | |
and the pending non-borked commit shows it being coerced to a new-number | |||
cmarcelo: you need DrIFT | |||
but you don't have to do that stuff | |||
@where DrIFT | |||
lambdabot | repetae.net/john/computer/haskell/DrIFT/ | ||
cmarcelo | gaal: cool.. i was hoping for a pugs.blogs entry about this shift =o) | 06:36 | |
gaal | there's a draft of one but audreyt and I are too distractable to finish it :) | 06:37 | |
but keep prodding please :) | |||
cmarcelo | gaal: re: drift.. why shouldn't I? I create a rule in drift section of AST/Internals.hs for YAML IHash, and want to propagate it the right way.. | ||
gaal | oh sure, if you are drifting! | 06:39 | |
certainly :) | |||
then what you need is: | |||
06:39
tokuhirom left
|
|||
gaal | 1. d/l drift, unpack it as a sister dir to pugs | 06:39 | |
2. mv DrIFT-n.m.x DrIFT | |||
3. cd pugs | |||
4. perl util/claim_drift.pl | 06:40 | ||
that's it. | |||
06:40
kane-xs joined
|
|||
cmarcelo | gaal: let's see if DriFT and GHC-trunk are nice to each other =o).. | 06:41 | |
(oh! thanks =) | |||
gaal | np :) no reason why not | 06:42 | |
okay I think I did somehow bork the repo :( | 06:43 | ||
audreyt: ping | |||
What I did: svk push, notice I was pushing a bunch of very old commits, hit ^c after three | 06:44 | ||
they seem to be committed but the version numbers in the repo are screwed up | |||
I can't merge them away. | |||
probably a subversion bug? :( | 06:45 | ||
and I really am late for $work... *sigh* | 06:46 | ||
okay, gotta moose over to the office. bbiab& | 06:48 | ||
07:03
buetow joined
|
|||
gaal | rehi | 07:10 | |
(bike commute)++ | |||
07:15
tup joined
07:35
zofbot joined
07:39
bsb left,
zofbot joined
07:41
zofbot joined
07:46
zofbot joined
|
|||
cmarcelo | The 'pmc_support' method does not exist in the '../../inc' path! | 07:47 | |
Please remove the '../../inc' directory and run Makefile.PL again to load it. | |||
this appears in the end of "make".. | |||
removing inc breaks "perl Makefile.PL" | 07:49 | ||
this is preventing "make smoke" and "make install" work =P | 07:54 | ||
TimToady | yes, I'm getting the same runaround, but it's 1:00 am here, so I'm giving up and hoping someone will fix it by the time I come back... | 07:55 | |
nite & | 07:56 | ||
07:56
zofbot joined
|
|||
cmarcelo | ok.. good night. | 07:56 | |
08:02
iblechbot joined
|
|||
gaal | try syncing the repo to before 12025 - but it may not be possible :( | 08:21 | |
08:29
jferrero joined
08:36
elmex joined
08:42
ruoso joined
08:48
avar joined
08:49
plisk joined
08:53
renormalist joined
|
|||
cmarcelo | audreyt: re: List::elems I think something is blocking before 'op1 "List::elems"', is that possible that pugs is trying to convert to VArray before calling op1 ? | 08:54 | |
but doesn't make much sense, I tested in a code that was available only to VUndef and VRef, and for VRef only MkRef (IArray arr)... | 08:57 | ||
pasteling | "cmarcelo" at 200.232.237.151 pasted "List::elems sketch" (84 lines, 3K) at sial.org/pbot/18865 | 08:59 | |
cmarcelo | op1 "List::elems" = \v -> do { size <- doArray v array_fetchSize; sz <- size; return $ castV sz } | 09:09 | |
even this above blocks.. | |||
09:11
chris2 joined
09:34
cm joined
09:43
lypanov left
|
|||
cmarcelo | audreyt: in "pop" happens the same.. something consumes a long time before the op1 "pop".. | 10:07 | |
10:08
dduncan left
10:15
kane__ is now known as kane-xs_
10:30
lollan joined
10:34
kanru joined
10:37
jferrero joined
|
|||
audreyt | hi | 10:43 | |
cmarcelo | hello | 10:44 | |
audreyt | cmarcelo: line 1766 Prim.hs | 10:45 | |
svnbot6 | r12028 | audreyt++ | * add module::install PMC support to inc/ | ||
audreyt | (Array) | ||
change to | |||
(rw!Array) | |||
will prevent the VList conversion | |||
10:47
lichtkind joined
10:48
xinming joined
|
|||
cmarcelo | audreyt: will try it... | 10:49 | |
10:49
silug joined
|
|||
cmarcelo | strange thing is, pop is rw!Array already... | 10:51 | |
10:59
gaal joined,
gaal|work joined
|
|||
gaal|work | hi! audreyt, is the build not broken for you? | 10:59 | |
11:00
silug joined
|
|||
gaal|work | the last three commits before your latest are bogus but I can't revert them :( | 11:00 | |
audreyt | bogus how | 11:01 | |
svnbot6 | r12029 | audreyt++ | * unbreak the build | ||
gaal|work | they were three old commits somehow waiting in my working copy, svk push threw them in and I got very weird r number discrepancies trying to revert them. | 11:02 | |
audreyt | oh ok. | ||
i'll revert | 11:03 | ||
11:03
TimToady joined
|
|||
gaal|work | merge -r12027:12026 etc. made it look like the repo itself was damaged :( | 11:03 | |
11:03
silug joined
|
|||
gaal|work | i lost connectivity to my machine at home (murphy must be playing catchup) | 11:04 | |
cmarcelo | from last commit: "Can't locate object method "new" via package "Module::Install::PMC" at inc/Module/Install.pm line 144." | 11:05 | |
11:05
christopher joined
|
|||
audreyt | cmarcelo: r12029 should fix that | 11:05 | |
hm weird | |||
cmarcelo | audreyt: rw!Array doesn't seem to be enough.. | 11:06 | |
11:07
xinming_ joined
|
|||
cmarcelo | who calls op1's during execution? | 11:07 | |
audreyt | line 1459 | 11:08 | |
Prim | |||
is the dispatcher | |||
thinking | |||
svnbot6 | r12030 | audreyt++ | * revert gaal's miscommits | ||
audreyt | well... I think you should fix hsjudy building | 11:09 | |
and then commit | |||
and I'll pull and fix it there :) | |||
11:09
xinming_ is now known as xinming
|
|||
cmarcelo | ok | 11:10 | |
svnbot6 | r12031 | audreyt++ | * some more kluges to make v6-alpha build | 11:11 | |
r12032 | audreyt++ | * updates the AUTHORS list with cpan ids | 11:13 | ||
11:13
silug joined
|
|||
gaal|work | audreyt, what did you do to make it work? | 11:16 | |
audreyt | did what to what? | 11:17 | |
gaal | ah that's better | ||
to the repo? I got errors when I tried to merge. | |||
audreyt | I don't know, I didn't merge | ||
I hand patched and then commited | 11:18 | ||
when in doubt use brute force etc | |||
gaal | oh, then there are some props to . that may have been lost. | ||
(I think.) | |||
audreyt | that's ust your merge history | ||
that's fine | |||
gaal | what!? that makes 'merge' useless... | 11:19 | |
suppose there were commits 1 2 3 4 5 6 7 | |||
audreyt | "merge" is useless. | ||
I've really never used that command :) | 11:20 | ||
gaal | 5,6,7 are bogus replays of 2,3,4 | ||
11:20
silug joined
|
|||
audreyt | I revert textually | 11:20 | |
gaal | merge 7:6, merge 6:5 -- fails | ||
audreyt | well | ||
gaal | with VERY SCARY error | ||
audreyt | svk "merge" does not track history _anyway_ | ||
the merge props are only consulted by smerge | |||
gaal | I was sure I messed up the upstraeam repo | ||
audreyt | probably just your internal repo is confused | 11:21 | |
gaal | I very quickly moved over to an svn checkout to try to fix the problem | ||
clkao giggles | |||
audreyt | svk's "merge" should probably be renamed to "brokenmerge" | 11:22 | |
rodi smerges | |||
audreyt | or something. | ||
gaal | but that gave weird stuff too: svn up -rX gave an update to a file that was really unrelated | ||
audreyt | wow. | ||
your fsfs might be hosed somehow | |||
hard to tell | |||
gaal | *my* fsfs? that was against trunk | ||
11:23
aufrank joined
|
|||
aufrank | #svk | 11:23 | |
whoops, sorry, I missed the buffer I was trying to type in =\ | |||
audreyt | oh. svn up -rX. | 11:24 | |
hm. | |||
I don't know. it looks fine here | |||
gaal | well, okay, i'll commit `1`+`42`, which workedforme this morning, when I get home. | ||
audreyt | yay! | 11:25 | |
gaal | ...if my version control isn't borked. | ||
audreyt | ...hopefully it isn't | ||
gaal considers mailing diffs to random people from now on | |||
StudiesInWords puts gaal on the spammer list | |||
gaal | and if that fails, snailmailing printed copes of them | 11:26 | |
wow, that's one place I never imagined myself ending up in... | 11:27 | ||
audreyt: anymoose, to more important matters. the coersion from str to num is kinda braindead -- there's a ByteString.readInt there so it's not very polymorphic | 11:28 | ||
but I figgered it was just a demo at first, so... | 11:29 | ||
audreyt | braindead is fine... | ||
11:30
ludan joined
|
|||
gaal | well I was hoping for 'read' to work, in :: Double context, but it didn't. | 11:31 | |
apparently there needs to be some extra trickery to redispatch into Show... | 11:32 | ||
audreyt | Show does not define read | ||
Read defines read :) | |||
gaal | huh. | ||
audreyt | and read takes String not PureStr | ||
gaal | yes, but we have ((:<:) String)... | 11:33 | |
though of course it's better not to go via String at all. | |||
I suppose that means we will have to implement our own Num parser over ByteString anyway | 11:34 | ||
svnbot6 | r12033 | cmarcelo++ | * Judy.Hash: Use finalizer for Iter. | ||
gaal | so my simplistic approach is actually a good start | 11:35 | |
11:36
autark joined
|
|||
audreyt | yup. | 11:37 | |
11:38
kane-xs_ left,
kane-xs_ joined
|
|||
kane-xs_ | test | 11:38 | |
odd... | |||
cmarcelo | should util/build_pugs or HsJudy.cabal install judy c library? | 11:47 | |
audreyt | hmmm | ||
I don't know :p | 11:48 | ||
build_pugs I think? | |||
gaal | static linkage? | ||
and then "neither" | 11:49 | ||
how big is libjudy.a? | |||
audreyt | 583940 bytes here | 11:52 | |
static linkage is fine. | 11:54 | ||
we can trivially satisfy section 6a of LGPL. | |||
gaal | hmm, that's much larger than my guess! | ||
audreyt | pugs is 10456520 | 11:55 | |
"pales in comparison" | |||
cmarcelo | that's odd.. 1_288_400 here... src/obj/.libs/libJudy.a | ||
gaal | pugs is a little more complex than judy :) | ||
cmarcelo: -g? different inlining schemes? | 11:56 | ||
audreyt | maybe | ||
gaal | hte sqlite on my box is smaller than that, though it's almost certainly stripped etc. | 11:58 | |
anyway back to the joys of c++ for me... | |||
cmarcelo | ./configure sets -g by default? or is my env? | 12:00 | |
hmmm.... make clean; cd src; ./sh_build # libJudy.a with 385k... | 12:02 | ||
StudiesInWords | 627_560 bytes here... | 12:05 | |
What does that prove? :) | |||
12:13
theorbtwo joined
|
|||
cmarcelo | StudiesInWords: that we all have different machines+compilers? =o) | 12:13 | |
12:13
bsb joined
|
|||
cmarcelo | audreyt: i'll see what can be done to link it statically via Cabal, then. | 12:14 | |
audreyt | woot. | ||
12:14
bpphillips joined
|
|||
cmarcelo | audreyt: i think you forgot it.. but HsJudy now depends on GHC 6.5 (because of WordPtr)... still sure about committing? | 12:24 | |
audreyt: in fact, it always depended on 6.5 (WordPtr).. | 12:25 | ||
12:26
Limbic_Region joined
|
|||
audreyt | heh | 12:27 | |
you can work around that | |||
Limbic_Region | can someone who has done a recent checkout do a pugs -v and tell me the rev level reflected? | 12:28 | |
audreyt | cmarcelo: use #ifdef to check ghc version | ||
if it's not there | |||
type WordPtr = (#type Word_t) | |||
that's it. | |||
or just define your own WordPtr ;) | |||
but #ifdef may be saner. | |||
Limbic_Region 's rev level hasn't changed since 12005 despite having svn'd up and nmake'd several times | 12:29 | ||
cmarcelo | but i don't think i can reproduce functions of WordPtr that I use... (at start I spent a little time trying to get out of GHC 6.5).. | ||
audreyt | what functions? | 12:33 | |
ptrToWordPtr and wordPtrToPtr ? | |||
cmarcelo | StablePtr only converts/casts to Ptr (), and I couldn't find something like wordPtrToPtr and ptrToWordPtr to make a bridge... | ||
yes | |||
rodi | Limbic_Region: interestingly, mine is marked 11678, and has been updated a bunch of times since then. I'm going to poke around and see where that's set. | 12:34 | |
audreyt | ptrToWordPtr (Ptr a#) = (W# (int2Word# (addr2Int# a#)) | ||
12:35
justatheory joined
|
|||
audreyt | wordPtrToPtr (W# w#) = Ptr (int2Addr# (word2Int# w#)) | 12:35 | |
the constructors should be visible once you import GHC.Ptr | 12:36 | ||
I think | |||
worst case... | |||
audreyt hands cmarcelo GHC.Exts.unsafeCoerce# :: a -> b | |||
rodi | Limbic_Region: do you have a /usr/bin/pugs as well as a /usr/local/bin/pugs? Looks like that's some of my confusion here... | ||
audreyt | see, GHC is actually a weakly typed language | 12:37 | |
Limbic_Region | rodi - I am on Win32 | ||
and I don't do nmake install | |||
cmarcelo | audreyt: =D heheh | ||
Limbic_Region | so I only have a pugs.exe in the Pugs build directory | ||
rodi - my guess is, the rev level is *now* only updating after a realclean | |||
which IIRC, is not the behavior that it always exhibited | |||
rodi | Limbic_Region: makes sense to me. | 12:38 | |
Limbic_Region | doesn't make sense to me though it would explain the current behavior | ||
or rather - that behavior doesn't make sense to me | |||
audreyt | Limbic_Region: try | ||
rm src/Pugs/pugs_version.h | |||
nmake src/Pugs/pugs_version.h | |||
and see if it probes correctly | |||
cmarcelo: but seriously, unsafeCoerce# should work here | 12:39 | ||
so if the constructor route is blocked | |||
try slapping uC# and see if it works | |||
Limbic_Region | yep - that worked audreyt | ||
though pugs -v is still showing 12005 | 12:40 | ||
audreyt | ok. fixing | 12:42 | |
clkao | fglock: t/00-grammar/01-pcr.............................................ok 5/30Can't locate object method "single_quoted" via package "Pugs::Grammar::Term" at t/00-grammar/01-pcr.t line 29. | 12:43 | |
cmarcelo | audreyt: ok.. i'll look on it... i have to take a "break" now, i'll be back in about 8h.. | ||
audreyt | cmarcelo: cool | ||
cmarcelo | audreyt: what's your ./pugs file size? | 12:45 | |
audreyt | Limbic_Region: weird. what's the mtime for your .svn/entries? | 12:47 | |
gaal | unsafeCoerceā£ | ||
cmarcelo | gaal: what's your ./pugs file size? | 12:48 | |
gaal | cmarcelo: don't have one handy right now, sorry -- apparently there was a powerout at home | 12:49 | |
cmarcelo | 20M sounds reasonable? | 12:50 | |
gaal | could be... check on feather? | 12:55 | |
cmarcelo | audrey's is 10M apparently... i'll need to check that sizes later too.. | ||
gaal | i bet there's a difference between optimized and non-, too. | 12:57 | |
cmarcelo | gaal audreyt: what about a post on pugs.blogs about this new AST changes? ;-) | 12:58 | |
i have to go now, for real... see you later & | 12:59 | ||
12:59
cmarcelo left
|
|||
gaal | :) maybe after I get back from work. though I can hope audreyt beats me to it :) | 12:59 | |
12:59
xdg joined
|
|||
Limbic_Region | audreyt just a sec, was lost in PerlMonks | 12:59 | |
audreyt - 08/09/2006 08:06 AM 5,668 entries (from a dir) let me know if you want exactitude using Perl's stat() | 13:03 | ||
13:04
rodi is now known as rodi_away
13:05
fglock joined
|
|||
audreyt | nah | 13:08 | |
13:11
fglock_ joined
|
|||
fglock_ | clkao: checking... | 13:20 | |
clkao | fglock_: also test.pm never finishes compiling | 13:24 | |
fglock_ | k | ||
svnbot6 | r12034 | fglock++ | v6 - t/00-grammar/01-pcr.t - quotes now belong to Pugs::Grammar::Quote | ||
fglock_ | (changing network) & | 13:26 | |
13:26
fglock_ left
13:28
fglock joined,
gaal joined
13:29
hexmode joined
|
|||
Limbic_Region | so any ideas audreyt? | 13:34 | |
hey gaal, not sure if you backlogged but doing a realclean fixed the problem | |||
the interesting thing to me is that this is apparently not necessary on all platforms | |||
13:41
fglock left,
bsb left,
fglock joined
|
|||
audreyt | Limbic_Region: where is your Verison.o? | 13:57 | |
dist/build/src/Pugs/Version.o ? | 13:58 | ||
13:59
jferrero joined
14:01
ruoso joined
14:03
justatheory joined
|
|||
Limbic_Region | audreyt - work, will brb | 14:04 | |
audreyt | k | 14:08 | |
xerox | audreyt: hey | 14:17 | |
audreyt: a friend of mine would like to implement his own language, I started advicing a simple lambda calculus evaluator, do you have better ideas? Since you ... eheh :) | |||
audreyt | lol | 14:18 | |
"his own language"? | |||
try perlcabal.org/~nothingmuch/harrorth/doc/ | |||
lambdabot | Title: Index of /~nothingmuch/harrorth/doc | ||
14:18
rodi_away is now known as rodi
|
|||
audreyt | nothingmuch's forth journal | 14:19 | |
it's a decent language to implement | |||
xerox | Right | ||
rodi | odi-ray as-hay is-hay own-yay anguage-lay, oo-tay | 14:20 | |
14:20
elmex joined
|
|||
xerox | audreyt: his language should me something like a lisp | 14:21 | |
audreyt | scheme then | ||
dynamic typing is cool | |||
xerox | That's a good idea. | 14:25 | |
Scheme is very easy to implement. | |||
audreyt | by design :) | ||
xerox | Indeed. | 14:27 | |
Limbic_Region | audreyt - \dist\build\Pugs | 14:30 | |
there is no \dist\build\src\Pugs | 14:31 | ||
audreyt | that's why. | ||
Limbic_Region | ok - so what now? | 14:33 | |
oh, and completely OT - can anyone tell me why a box not running DNS would be requesting a zone transfer? | |||
audreyt | fixed! | 14:34 | |
Limbic_Region++ # thanks for the efficient debugging help | |||
svnbot6 | r12035 | audreyt++ | * reflect version into in pugs by correctly unlinking | ||
r12035 | audreyt++ | dist/build/Pugs/Version.o | |||
r12035 | audreyt++ | dist/build/Pugs/Version.hi | |||
r12035 | audreyt++ | Reported by: Limbic_Region++ | |||
audreyt | so please rm src/Pugs/pugs_version.h | ||
for one last time | |||
and then "nmake" | 14:35 | ||
should reflect the new version in pugs | |||
Limbic_Region | in process now | ||
any idea on the DNS zone transfer question? | |||
audreyt | "I don't see why" is the answer. | 14:37 | |
Limbic_Region | audreyt - no go | ||
my svn up of 12035 only included the following | |||
U perl5\Pugs-Compiler-Perl6\t\00-grammar\01-pcr.t | |||
U util\version_h.pl | |||
audreyt | when you "nmake" | ||
did you see something about | 14:38 | ||
Limbic_Region | ah, haven't done a full nmake - just the nmake version.h | ||
audreyt | Current version is ... | ||
? | |||
oh. | |||
StudiesInWords | "Cannot determine perl version info from lib/Pugs/Grammar/MiniPerl6.pm" normal? | ||
audreyt | "nmake pugs.exe" or something | ||
StudiesInWords: add a $VERSION in it? | |||
StudiesInWords | 12035 creates src/Pugs/pugs_version.h with 12035 | ||
Limbic_Region | C:\Perl\bin\perl.exe -Iinc util\version_h.pl src\Pugs\pugs_version.h | ||
audreyt | (do you have a commit bit?) | ||
Limbic_Region | Writing version from C:/Pugs/.svn/entries to src\Pugs\pugs_version.h | ||
yes | |||
audreyt | (that was asking StudiesInWords) | 14:39 | |
Limbic_Region | though I haven't tried it since they added a firewall on top of the proxy | ||
StudiesInWords | nope | ||
Limbic_Region | oh, sorry | ||
StudiesInWords | (and no license info either) | ||
Limbic_Region | ok, related OT question - if a machine is running DNS, can anyone think of a reason it would be attempting to do a zone transfer with a root DNS on the internet despite not having any external zones defined? | 14:40 | |
audreyt | StudiesInWords: what's your email addr? | 14:41 | |
I'lld send you a commit bit | |||
StudiesInWords | "Warning: prerequisite Pugs::Compiler::Rule 0.13 not found." I have to install that seperately from "pugs/perl5/Pugs-Compiler-Rule", right? | ||
What is a commit bit? | |||
Limbic_Region | it allows you to check in changes to the Pugs repository | 14:42 | |
so others can benefit from your contributions | |||
rodi | uh oh. Now you've done it, StudiesInWords ;) | ||
Limbic_Region | and alleviating people like audreyt from stopping their work to commit yours | ||
Limbic_Region is infamous for bitching about problems that others fix and then end up comitting too | 14:43 | ||
therefore - I am not a good role model | |||
StudiesInWords | "t/11-parsec.t 255 65280 10 19 1-10" not good | 14:44 | |
fglock | StudiesInWords: pcr/parsec is work in progress | 14:45 | |
svnbot6 | r12036 | fglock++ | v6 - fixed deep recursion while parsing 'pod' | ||
fglock | clkao: Test.pm parses again | ||
StudiesInWords | (i'm new, just hit me on the nose with a newspaper if i'm a nuisance...) | ||
Limbic_Region | audreyt - after doing an nmake I am now showing the proper rev level - will let you know after the next check-in if the problem is 100% fixed | 14:46 | |
oh, and there it is | |||
fglock | audreyt: is it ok to move pcr/parsec to MiniPerl6? | 14:50 | |
audreyt | StudiesInWords: welcome abaord :) | 14:51 | |
fglock: you want to ask scw | |||
fglock | k | ||
audreyt | but the pugs commit rule is "ask for forgiveness later" | ||
so if it makes things easier, go ahead :) | |||
fglock | no hurry :) | ||
audreyt goes sleeping -- $job day tomorrow, and then free for another 3 days of pugshacking | 14:52 | ||
fglock | do you know how to make t/Test.pm precompile in Makefile.PL ? | ||
audreyt | and maybe finally I'll pick up journaling :) | ||
Limbic_Region | sleep well audreyt | ||
audreyt | fglock: perl -c t/Test.pm | ||
14:53
vel joined
|
|||
audreyt | perl has a compile flag! | 14:53 | |
use it! :) | |||
fglock | thanks! | ||
scw | what's up? :) | 14:54 | |
14:54
cjeris joined
|
|||
scw | oh, the 11-parsec.t? I'll take a look.. | 14:55 | |
fglock | scw: hi! | ||
14:55
Qiang joined
|
|||
scw | fglock: hi, I think 11-parsec.t is not the correct way to test parsec emitter | 14:56 | |
It should really feed the haskell code to ghc and run on some input | |||
but now I could only put some 'should work like this' result :( | |||
fglock | scw: how about moving to MiniPerl6 (if you think it might belong there) | 14:57 | |
scw | fglock: what do you mean? | ||
fglock: PER::Parsec should belong to P::C::R | 14:58 | ||
fglock | ok - sorry for the confusion | 14:59 | |
audreyt | hm. VB has a pragma to turn off implicit coercion | ||
I wonder if perl6 can, if lexically turned off implicit coercion | |||
fglock | audreyt: is there a way to do conditional recompilation? -c seems to recompile everytime | 15:00 | |
audreyt | somehow make "if '' { 1 } else { 2 }" return 2 | ||
fglock: just omit -c? | |||
hm, not sure. | |||
oh | 15:01 | ||
in Module::Install::PMC | |||
File::Find::find( sub { | |||
push @pmcs, $File::Find::name if /\.pmc$/i; | |||
}, 'lib'); | |||
if you change | |||
'lib' | |||
to 'lib','t' | |||
then it should work automagically | |||
ingy: you okay with that change? | |||
fglock: you can make that hcange locally first | |||
fglock | k | 15:02 | |
audreyt | I really need to crash now :0 bbl | ||
fglock | audreyt: good night | ||
Limbic_Region | audreyt - fixed - thanks | ||
15:07
marmic joined
|
|||
scw | fglock: compile_p6grammar.pl fails to parse Pugs-Grammar-MiniPerl6/lib/Pugs/Grammar/MiniPerl6.grammar | 15:08 | |
fglock: that makes PER::Parsec fail to translate closure... | |||
fglock | scw: I'll take a look | 15:09 | |
15:10
spoop joined
|
|||
svnbot6 | r12037 | fglock++ | inc/Module/Install/PMC.pm - added 't/' in order to compile Test.pm | 15:12 | |
r12038 | fglock++ | v6 - added Perl6Prelude.pmc and Test.pmc to MANIFEST | |||
fglock | scw: this will need some work - I'll try to compile with v6.pm instead | 15:17 | |
15:19
hexmode joined
|
|||
scw | I really should have my .pm file backuped :( | 15:19 | |
15:19
plisk joined
|
|||
scw | don't know if there are any other changes effecting the test suit :( | 15:19 | |
fglock | scw: you can install a previous PCR from cpan if needed | 15:20 | |
scw | fglock: I'll do that if compile_p6grammar.pl still don't work tomorrow morning | 15:21 | |
fglock: err... say, 11 hours later | |||
15:22
kanru joined
|
|||
scw | fglock: however, I only found the mistranslated closures when my .pm was not overriden | 15:22 | |
fglock | scw: if v6.pm compiles it, you can proceed programming in pure perl6 :) | ||
scw | fglock: do you mean using pure perl6 in closure? (or, production rule?) | 15:23 | |
fglock | yes | ||
scw | fglock: cool! | ||
scw going home *wave* | 15:24 | ||
15:25
crem_ joined
|
|||
fglock | scw: it parses with v6.pm until line 53 - I'm checking | 15:26 | |
15:28
weinig joined
|
|||
fglock | lunch & | 15:30 | |
15:38
aufrank joined
15:54
weinig joined
|
|||
gaal | is perl5/Pugs-Compiler-Perl6/t/01-sanity etc. generated? | 15:56 | |
why does it always appear as '?' in svk st otherwise? | 15:57 | ||
clkao | because it's copied over from t/ | ||
when listed in manifest | |||
gaal | so can we svn:ignore it? | 15:58 | |
clkao | maybe | 16:02 | |
perhaps we should but those from t/ in different directory? | |||
so we just ignore that one | |||
gaal | there are about 10 | 16:04 | |
directories that show up in perl5/Pugs-Compiler-Perl6/t | |||
as '?' | |||
clkao | ya. but we will be adding more to manifest when things pass | ||
so probably make the script copy to t/pugs-t rather than just t/ | 16:05 | ||
then we ignore pugs-t | |||
gaal | sounds like a plan | 16:08 | |
svnbot6 | r12039 | fglock++ | v6 - added perl5/Pugs-Compiler-Perl6/MiniPerl6.grammar - pure-perl6 version; parses but doesn't emit yet | 16:15 | |
clkao | ooo | 16:16 | |
16:22
Psyche^ joined,
Psyche^ is now known as StudiesInWords
|
|||
fglock | clkao: now it compiles! | 16:30 | |
svnbot6 | r12040 | fglock++ | v6 - plain-p6 MiniPerl6.grammar compiles! | ||
16:32
m0213 joined
|
|||
gaal | `1`+`2` landed, for real. | 16:34 | |
svnbot6 | r12041 | gaal++ | * Pugs.Val.Num and simple coersion triggered from oldspace. | ||
r12041 | gaal++ | `1` + `41` constructs two newval PureStrs, and the fromVV / | |||
r12041 | gaal++ | ICoercible classes figure out how to get numbers of them. | |||
clkao | that's crazy | 16:39 | |
lichtkind | is anybode here who is also write any kind of docu for pugs or perl6 ? | 16:40 | |
gaal | clkao: what | 16:43 | |
svnbot6 | r12042 | fglock++ | v6 - clear a few warnings in emitter | ||
gaal | gah, I need to apply coercion on myself to stop mispelling "coercion". | 16:44 | |
fglock | v6.pm is fast enough that I can run tests again :) | ||
gaal | yay! | ||
lichtkind: what are you looking for? | 16:45 | ||
lichtkind | gaal i like to know with who to talk and where might be conflicts since skud isnt interested in these things | 16:46 | |
audreyt | gaal: svkaddNum | ||
gaal | eep | ||
lichtkind: i think just mention what you're working on in the channel and go ahead | 16:48 | ||
svnbot6 | r12043 | gaal++ | * add missing file | ||
gaal | audreyt: ci'ed | ||
audreyt: some boilerplace as you can see in the Vs :( | 16:49 | ||
what additional types should I work on? fill in Pure? | |||
s/place/plate/ | |||
lichtkind | gaal i just talked with audrey but you now im mostly a social guy who also likes to know what other people think | 16:52 | |
audreyt | gaal: moose, I still think solving circularity is worth trying | ||
but yeah, fleshing out pure may be nice | 16:53 | ||
gaal | sure, I'm saying there's no docmaster or antything like that. If you want to work on something -- great! -- just say so on the channel so to avoid conflicts like you say | ||
audreyt | adding Inf support to Integer? | ||
porting more CapInternals over to Pure | |||
gaal | hmm, there's no way to induce an integer right now... have to think of one :) | ||
audreyt | and think of ways to reduce boilerplate | ||
gaal | bunching all Pure in one file can help a little bit :-p | 16:54 | |
audreyt | well, you can make a toVV ;) | ||
gaal | triggered how from surface? | ||
audreyt | you mean Pugs.Val.Pure? | ||
as a Prim | |||
gaal | yes. | ||
audreyt | "vv()" | ||
something | |||
gaal | oh ok | 16:55 | |
audreyt | well, if you think that's saner... go ahead :) | ||
gaal | vv(42) can indeed induce PureInt | ||
audreyt | the number of Pure types are large though | ||
I don't know the answer yet | |||
if we can somehow put instances in Val.Str | |||
16:55
prefiks joined
|
|||
audreyt | then that sounds cleaner | 16:55 | |
gaal | yeah... but as long as the Coercible instances aren't in the various modules, it doesn't matter much because the various moduels are all so small | 16:56 | |
audreyt | but anyway, that's not showstopper | ||
gaal | all instances in Str? why? | ||
audreyt | Coercible and the types it uses can maybe put one place | ||
gaal | because that's the most useful one or debugging? | ||
audreyt | I mean Str instances in Str | ||
16:56
rlb3_ joined
|
|||
audreyt | and Int in Int | 16:56 | |
etc etc | |||
gaal | yeah. | ||
xerox | audreyt: if you are interested I have mailed cabal-devel with the current plan and status, I need lots of feedback :) Thanks! | ||
gaal | well #haskell didn't have an idea bout that problem either.... | ||
audreyt | xerox: np. :D | 16:57 | |
gaal | maybe I can try again now, different timeslice. | ||
audreyt | don't try too hard :) | 17:04 | |
filling in the pure types = more fun | |||
17:04
rashakil_ joined
|
|||
gaal | In general will there be n*m "as" methods? | 17:06 | |
or can we get some for free? | |||
ICoercible slots x Pure instances | 17:07 | ||
audreyt | m = fixed | 17:08 | |
Coercible only cares about that many | |||
none of the others has implicit coercions | |||
perl6 doesn't have other implicit coercions | |||
gaal | nod | 17:09 | |
TimToady | audreyt: what do you think about .META, .VAR, and .VAL as "coercions"? | 17:10 | |
Limbic_Region wonders what happened to audreyt sleeping? | |||
svnbot6 | r12044 | audreyt++ | * Implicit coercion to int and to bool for PureStr VV. | ||
audreyt | TimToady: I think dotpostfix macros is a concept we don't yet have. | 17:11 | |
gaal | Limbic_Region: all the signs are that she's sleeping peacefully. | ||
TimToady | that's why I was talking about .Type earlier | ||
to go with Type() | |||
audreyt | aye. the thing is, why the .new form then? | 17:12 | |
TimToady | I'm just thinking they'll namespace better if we uppercase them and put them into typespace rather than method space. | ||
audreyt | my Point $p .= (x =>1, y => 2); | ||
Limbic_Region | gaal - did you get the note about the realclean | ||
TimToady | how. | ||
i mean, yow | |||
audreyt | if you carry this to logical conclusion (type name as constructor with multi forms to handle coercion) | ||
gaal | Limbic_Region: yes. if you manage to figure out what characterizes the cases when you need it, please tell | 17:13 | |
audreyt | I think the idea is sound. I like META/VAR/VAL. I wonder about List/VAL | 17:14 | |
TimToady | VAL is old .valid | ||
audreyt | ahhh. | ||
so still List/Item | |||
good. | 17:15 | ||
TimToady | yeah, those are real types. | ||
or contexts... | |||
audreyt | contexts are type annotations on the return signature... | ||
then I like META/VAR/VAL a lot. | |||
not entirely sure abou tthe postfix dor form | |||
dot | |||
since it usually carries a notion about runtime dispatch | 17:16 | ||
i.e. if userdefine method VAR | |||
then would it get a say? | |||
obviously wouldn't | |||
$scalar.VAR wouldn't care about content | |||
might be visually confusing. | |||
TimToady | that's why I was wondering about which classes might consider themselves macros | 17:17 | |
on the other hand it's good to have some kind of postfix form. | |||
and we already have the foo() vs .foo failover | |||
audreyt | I think .Class is clear | ||
TimToady | but that's runtime. | ||
audreyt | or .Type | 17:18 | |
depending on which side of the phases ou'd like to emphasize | |||
but idea is "you can always ask a Type out of a value" | |||
also, we said that userdefined class should be able to override .valid | 17:19 | ||
to pretend to be value | |||
TimToady | well, I suppose we could just say that .Type is runtime dispatch, and if you're willing to take the optimizer hit to write it that way... | ||
audreyt | but then VAL the macro wouldn't have the info | ||
right. I think that's saner | |||
TimToady | and you write VAL() for macro or .VAL for runtime. | ||
audreyt | yes. | ||
lichtkind | sorry i could not follow all depails last month | ||
TimToady is anything noticeable changed in perl design principles since your talk in israel ? | 17:20 | ||
TimToady | then we just say that you get .VAL for free when it fails over to VAL() at runtime | ||
audreyt | yes. since we have macro reeval rule. | ||
TimToady | and then a class can override .META but not META | 17:21 | |
audreyt | and .VAR is... well not really possible :) | ||
TimToady | META() | ||
not sure if that makes sense. | |||
(at compile time) | 17:22 | ||
audreyt | that would be asking the inferred type | ||
most of time Any | |||
I think I like TypeNaming the various builtin casters | 17:23 | ||
TimToady | but if META() is runtime but not dispatched, we get the object's idea of meta, not the ancestor's | ||
audreyt | if only to reduce possible conflicts with normal methods | ||
TimToady | it also is EXTRAORDINARY | ||
and discourages people from writing $x.VAL eq $y.VAL | 17:24 | ||
audreyt | agreed on all accounts | ||
TimToady | okay, go to bed. :) | ||
audreyt | so: those EXTRAORDINARY macros stay as handcoded macros | 17:25 | |
they are not proper types anyway | |||
(can't use them to construct stuff) | |||
TimToady | certainly not VAR | ||
audreyt | VAL.new VAR.new META.new | ||
doesn't make any sense. | |||
and normal type stuff | |||
Int($x) $x.Int | |||
TimToady | unless META is the name of MetaClass | ||
audreyt | follows normal runtime dispatch rule | ||
but MetaClass is just Class | 17:26 | ||
unless you think Class derives from Meta | |||
which is ine, but then it should be called Meta() not META() | |||
TimToady | META doesn't commit to whether the thing on the other end is a class. | ||
audreyt | since unlike VAL/VAR, you can actually ask for Meta.new | ||
(if interpreted that way) | |||
oh. I see what you mean | |||
you are saying that "this has a vtable" doesn't say anything about the concrete contract | 17:27 | ||
TimToady | nod | ||
audreyt | and as such META.new wouldn't do anything | ||
ok. then META is fine. | |||
TimToady | k, other thing is whether VAR and VAL are too alike | ||
audreyt | ID :) | 17:28 | |
TimToady | and the fact that they're not really opposites. VAR($x), $x, and VAL($x) may be three different things. | ||
thought about ID, but I think not. | |||
VID maybe | |||
audreyt | VID VAR | 17:29 | |
VAL VAR | |||
I think either is fine. all-uppercase is hard to get wrong | |||
I also think this classless/pluggable-object-system intuition of yours is looking like more and more like a good idea. | 17:30 | ||
I furrther think I need to sleep :) *wave* | |||
TimToady | *handwave* | ||
xerox | Later! | ||
fglock wonders what was being explained with "*handwave*" | 17:33 | ||
TimToady | these aren't the 'droids Audrey was looking for... | 17:35 | |
17:35
buubot joined
17:36
buu is now known as buubot
17:37
buubot is now known as buu
|
|||
audreyt | oh. one last thing. | 17:37 | |
TimToady: two-way fallback. | 17:38 | ||
close($fh) try sub first fallback to meth | |||
$fh.close try meth first fallback to sub | |||
gaal tries out new vim7 builtin tabs | |||
audreyt | fallout: return($x) calls the lexically bound &return first. | ||
outside subs there's simply no &return in scope | 17:39 | ||
pro: no longer have to explain why return($x) works differently from close($fh) | |||
(since "method return" should _not_ fire on return($x)) | |||
con: the no-fallback form, &close($fh), is a bit subtle to explain. | 17:40 | ||
but I think it's the sanest strategy I can come up with :) | |||
</braindump> | |||
17:41
buubot joined
|
|||
audreyt | (that's just one-arg... f($x, $y) never calls $x.f($y)) | 17:41 | |
17:41
jferrero joined
|
|||
audreyt | & | 17:42 | |
17:42
m0213 left
|
|||
TimToady | audreyt: or there's just always a return() in scope that fails where inappropriate. In fact, it's probably a macro outside of subs so it can fail at compile time. | 17:52 | |
18:16
pdcawley joined
|
|||
pdcawley is having a brainfart... I know how to set a trait on something, but for the life of me I can't remember how you access its value later... | 18:21 | ||
PerlJam | pdcawley: pretend it's a method | 18:23 | |
pdcawley | Ah... it hasn't changed then, cool. | ||
:) | |||
18:30
bernhard joined
|
|||
svnbot6 | r12045 | fglock++ | v6 - minor fixes to pod parsing | 18:50 | |
r12046 | fglock++ | v6-Compiler - Grammar/Native.pm compiles with v6.pm | |||
aufrank | fglock: big day for you! this is really exciting stuff you're getting to now! | ||
fglock | aufrank: :) | 18:51 | |
it's a long way ahead | |||
aufrank | do you have a basic roadmap, or are you in low-hanging-fruit mode? | ||
(or are you on pick-the-funnest-route mode)? | 18:52 | ||
obra | what's v6's test passing look like right now? | ||
aufrank | fglock: re: "it's a long way ahead", do you mean you're further along than you expected to be? or that significant progress is a long way off yet? | 18:53 | |
fglock | aufrank: there are HACKING and README files in v6/ - but the plan needs more work | ||
18:53
weinig joined
|
|||
fglock | aufrank: both a long way ahead & behind, I guess :) | 18:54 | |
aufrank | well, it seems to me like you're doing great | ||
:) | |||
fglock | obra: it passes above 1000 tests (from >10k) | 18:55 | |
obra | cool | 18:56 | |
fglock | obra: it's already possible to write p6-on-p6 using it | ||
obra | cool :) | ||
fglock | I mean, I think it is | ||
I'm trying to prove it :) | 18:57 | ||
18:59
weinig joined
|
|||
fglock | v6-Compiler only compiles native values for now - but the architecture allows interoperation with the current working compilers, so it can be expanded step-by-step | 19:01 | |
clkao | want dynamic rule parser that i can push/pop rules | 19:02 | |
fglock | so you can have a single compiler and the backends are just... backends | 19:03 | |
clkao: sorry? | 19:04 | ||
clkao | remember the mutating parser | 19:06 | |
when you have a infix declared | |||
19:08
hexmode` joined
|
|||
fglock | clkao: you can call Pugs::Grammar::Infix->add_rule(name/assoc/precedence...) and then Pugs::Grammar::Infix->recompile will recalculate the grammar tables | 19:09 | |
recompile() can be optimized, if it is too slow | 19:10 | ||
clkao | but remove rule? | 19:11 | |
fglock | localizing Pugs::Grammar::Infix::hash should keep the modification in scope | ||
moving out of scope should remove the rule | |||
but you could also just delete the hash entry | 19:12 | ||
clkao | ah | 19:13 | |
19:15
Ovid joined
|
|||
fglock | you may need to localize Pugs::Grammar::Operator::hash too - it is used by the precedence parser | 19:15 | |
<%operator> = <%infix|%prefix|%postfix|%circumfix|%postcircumfix|%ternary> | 19:17 | ||
merlyn | no "%smooth" ? | ||
fglock | no, that's a term :) | 19:18 | |
merlyn | hmm. you might not be familiar with the song by SadƩ called "Smooth Operator" | ||
fglock | oh sure :) | ||
merlyn | ... en.wikipedia.org/wiki/Sade_%28band%29 | 19:19 | |
cjeris | ... the source of an infinite stream of bad partial-differential-equations jokes. | 19:20 | |
fglock | "No place to be ending but somewhere to start" - yes, it sounds like a parser thing | 19:21 | |
19:21
buetow joined
|
|||
fglock | I need some examples of using roles and ->does() with Moose | 19:27 | |
19:29
jferrero joined
|
|||
fglock | I'll take a look at the Moose test suite | 19:31 | |
svnbot6 | r12047 | fglock++ | v6 - 'role' calls Moose::Role | 19:38 | |
fglock | what is '.does()' called in Moose land? | 19:40 | |
bpphillips | fglock: I think it's does() (see search.cpan.org/~stevan/Moose-0.11/...m#METHODS) | 19:42 | |
lambdabot | Title: Moose::Object - The base object for Moose - search.cpan.org | ||
19:42
jferrero joined
|
|||
stevan | fglock: which does? | 19:43 | |
Foo does Bar?... that is with() | |||
Foo->does(Bar) | 19:44 | ||
that is does | |||
fglock | stevan: I need '$object does Role' | ||
Ovid | Does Foo->does(Foo) return true? | ||
stevan | fglock: sorry,.. not supported yet | ||
Ovid: good question | |||
assuming Foo is a role, I think it does | 19:45 | ||
fglock | should I create an internal class to implement it? | ||
Ovid | chromatic raised this point and I think he's correct that it should. | ||
stevan | fglock: we are working on cleaning up the Role internals right now, so supporting that is still a little way away | ||
Ovid | Can you extract roles from classes? That would be helpful and means that classes and roles aren't too dissimilar. | ||
stevan | Ovid: well, we are actually going somewhat in the opposite direction | 19:46 | |
Ovid | What? Extracting classes from roles? I don't understand. | ||
stevan | in the end the plan is for Class.does(Role) and Role.does(Role) | ||
so that classes and roles are mostly interchangable | |||
this is not a user-land level thing though | |||
shhh keep it under your hat ;) | |||
Ovid | What about Role.does(Class)? | 19:47 | |
stevan | nope | ||
although it could | |||
but I think that is getting to circular | |||
Role is an instance of Module, which is a superclass of Class | |||
uhr sorry | |||
Ovid | I agree, but I do think that Foo.does(Foo) should return true. That's particularly important in systems where those things aren't hard-coded. | ||
stevan | Role is an instance of Class, but a subclass of Module | ||
fglock | stevan: I need 'return $/ does v6::AST::NFloat' - I could create a class that 'is' Match and 'does' v6::AST::NFloat, and the set $/ to it | 19:48 | |
stevan | Ovid: I totally agree | ||
fglock: sorry Moose does not support that kind of stuff yet | |||
Timbunce wants it too | |||
Ovid | Moose++ | ||
stevan | but I want to make sure its done right | ||
I have written/implementd roles/traits too many times now,.. I want this to be the last one :) | 19:49 | ||
19:49
pmurias joined
|
|||
Ovid | heh :) | 19:49 | |
pmurias | any one here going to YAPC::Europe/ | ||
Ovid | I am. | 19:50 | |
19:50
wolv joined
|
|||
stevan | Ovid: In Moose::Meta::Role -> return 1 if $role_name eq $self->name; | 19:50 | |
Ovid | Ah, good. | ||
wolv | sorry I'm slow, but is feather's connectivity sucking lately? | ||
stevan | now, for classes this (currently) wont work | ||
FooClass->does(FooClass) | |||
but eventually it might (I have to ponder it some more) | 19:51 | ||
wolverian | hrm, well, I guess it works now. sigh :) | ||
stevan | see when we combine attributes and their autogenerated accessors, those will be a mini-role | ||
19:52
jferrero joined
|
|||
stevan | which will be implicity combined with the class | 19:55 | |
19:56
pbuetow joined
|
|||
pmurias | Ovid: i'm propably not going, while i'm in England on a camp till 26 and i won't have anything to do for 4 days :( | 19:56 | |
stevan | at which point the class will behave as a role, so that it does not just roll over when there is a conflict | ||
Ovid | bummer. It should be a great conference. | 19:57 | |
stevan, that sounds like an interesting approach. | |||
stevan | Ovid: it solves a number of edge cases we found when combining roles with attributes | 19:58 | |
role with attributes are something no one wants to touch right now, the traits guy told me "good luck with that, let me know how it turns out" | |||
Ovid | heh :) | ||
justatheory agains weighs s/Class::Meta/Moose/ in Object::Relation | 19:59 | ||
19:59
frederico joined
|
|||
stevan | justatheory: come one man,.. all the cool kids are doing it,.. you wanna try it ,.. first hit is free ;) | 19:59 | |
justatheory | Baby! | ||
Ovid | Well, if you did that, I suspect the 'buzz' from Moose would help Object::Relation. | ||
justatheory | stevan: I need to find some tuits to really explore Moose | ||
Ovid | Anyway, any chance there will be a tutorial out soon? | 20:00 | |
justatheory | To see if it does what I need, and if not, that I can add it. | ||
Ovid: True. | |||
stevan | justatheory: did you say the other day in #moose that you are in the ny area? | ||
justatheory | stevan: Yes, I hung with NYC.pm last night. | ||
Are you here? | |||
stevan | I am in CT,.. just up the highway | ||
justatheory | I leave tomorrow. | ||
stevan | ah | ||
oh well | |||
Ovid | So much for a hackathon. | ||
justatheory | stevan: Ah. Wanna come down for dinner tonight? | ||
stevan | justatheory: I am still in my pajamas :) | 20:01 | |
working from home ++ | |||
Ovid | theory likes that. | ||
justatheory | stevan: You have *hours* | ||
Ovid: Don't give away our little secrets! | |||
Ovid | Oops. Sorry. | ||
stevan | I am not sure the boss/wife would allow it ;) | ||
there is always SubEtha :) | |||
Ovid | Hmm, just looked at my vim aliases and saw 'alias sprove='KINETIC_SUPPORTED=sqlite kprove'' | ||
justatheory | stevan: I guess I still have it. | 20:02 | |
Ovid | (theory knows that what that is) :) | ||
justatheory | Ovid: :-D | ||
That's dead. | |||
Ovid | I should clean up my .vimrc | ||
justatheory | After you left, I tagged the branch and then gutted the shit out of it. | ||
As you can probably tell. | |||
Oh, and Kineticode's svn is (mostly) open now, for anonymous checkouts | |||
Ovid | Yeah, I noticed that. Still, it's great to see that it's still hanging on, if only briefly. Any benchmarks? | ||
justatheory | benchmarks? We don't need no stinking benchmarks! | 20:03 | |
Ovid: No tuits | |||
Ovid | As for gutting, I didn't see Catalyst in there. Probably a good thing. I think my Catalyst stuff probably wasn't very good/useful. | ||
justatheory | Yes, I took out all of the "framework" stuff. It's just an ORM now. | 20:04 | |
Or mostly, anyway. | |||
Ovid | By the way, I assume you've seen hiveminder.com/? | ||
lambdabot | Title: Hiveminder - Get busy! | ||
justatheory | Ovid: Yeah, Jessie gave me an account ca. 6 months ago. | 20:05 | |
Ovid | lambdabot? | ||
justatheory | Haven't really had time to explore it yet, though. | ||
Oops, Chauncey is back. Back to wokr. | |||
work | |||
(He can see what you type, so be careful what you say!) | |||
Ovid | Oh, tell Chauncey I said 'hi' | ||
:) | |||
justatheory | He says, "Hello" | ||
Ovid | No worries. | ||
justatheory hides the IRC window | 20:06 | ||
Ovid | Actually, tell everyone I said 'hi'. Hope that's working out well. Anyway, I need to run about to my perl testing macros for vim. Cheers! | ||
justatheory | Chauncey is the only one left! | ||
That you knew | |||
bye | |||
Ovid | Lynne's gone? Alexandra (whatever his name was) is gone, too? | 20:07 | |
justatheory | Yes, both gone | ||
Lynne to Fast Company, Al to Nylon. | |||
Ovid | Wow. OK, this time I really do have to run. Have fun and tell Julie I said hi (oh, wait, did you get my postcard?) | ||
justatheory | yes, we did. Thanks! | 20:08 | |
20:08
crem joined
|
|||
justatheory | Very sweet. It's so 19th century! | 20:08 | |
Ovid | OK, just checking. Yeah, it's pretty cool here. | ||
And this time I *am* leaving. Bye! :) | |||
froh-doh | in one of the "translation" examples (matrix.p[56]) there is this translation: | 20:10 | |
my $matrix = shift || <>; # 5 | |||
my $matrix = @*ARGS[0] || =<>; # 6 | 20:11 | ||
I've seen that @ARGS[0] works as well, but is correct? | |||
s/is/is it/ | 20:12 | ||
stevan | froh-doh: @*ARGS is just being more specific ,.. thats all,.. IIRC it is saying "use the global/special @ARGS" | ||
froh-doh | oh, is this in "Synopsis 9: Data Structures" ? | 20:13 | |
froh-doh searches | |||
nope, S02 | 20:15 | ||
20:18
_bernhard joined
20:19
bpphillips left
|
|||
svnbot6 | r12048 | fglock++ | v6 - fixed 'rx' parsing - t/data_types/hash.t compiles again | 20:26 | |
20:34
crem_ joined
20:35
SageLT joined
20:39
crem_ joined
20:42
fglock joined
|
|||
svnbot6 | r12049 | fglock++ | v6 - changelog for 0.013 | 20:48 | |
r12050 | fglock++ | PCR - changelog for 0.14 | 20:51 | ||
20:55
bernhard joined
|
|||
svnbot6 | r12051 | fglock++ | v6 - updated Makefile.PL, MANIFEST for 0.13 | 21:06 | |
fglock | v6-alpha-0.013 is in CPAN - it contains a hacked Module::Install, I hope it works | ||
21:09
fglock joined
21:12
xinming joined
|
|||
fglock | audreyt: please add me and clkao to Pugs::Grammar::P6Rule co-maint in pause | 21:14 | |
21:20
ryan_ joined
21:23
ryan_ left
21:24
justatheory joined
|
|||
svnbot6 | r12052 | Sage++ | Added a missing nodetype to the translator definition of a P5AST. | 21:27 | |
r12053 | Sage++ | Some updates to node types and come cleanup. | |||
21:27
rashakil__ joined
|
|||
svnbot6 | r12054 | Sage++ | Added translations for @EXPORT and @EXPORT_OK (but only functions are handeled). Lines tat assign to @EXPORT are not deleted at this point, but "is export" is added to functions (with (:MANDATORY) for @EXPORT). | 21:33 | |
r12054 | Sage++ | Variables are now handeled inside literal text (so print "$array[1]" now becomes print "@array[1]" and so on). | |||
r12054 | Sage++ | Print and printf with a file are handeled (they get a comma between the file and everything else). | |||
21:35
jferrero joined
22:06
cmarcelo joined,
fglock left
22:12
weinig joined
22:27
xinming joined
22:30
weinig joined
22:32
cjeris left
22:41
larsen joined
22:58
dbrock left
22:59
tup joined
23:14
diakopter joined
23:37
Khisanth joined
23:38
mauke_ joined
23:39
justatheory joined
23:53
mauke_ is now known as mauke
|