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-&macro-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