pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~315 days 'til Xmas Set by mncharity on 8 February 2009. |
|||
00:08
mikehh left,
kane_ left
00:09
maerzhase left,
hercynium left
00:10
[particle] joined
00:14
justatheory joined
00:30
alc joined
00:36
hanekomu left
00:38
[particle] left
01:03
lisppaste3 left
01:09
lisppaste3 joined
01:13
mtnviewmark left
01:19
shinobi-cl joined
01:20
Oxygenfadd joined
01:29
hercynium joined
01:30
[particle] joined
|
|||
Oxygenfadd | pastebin.com/d694c8822 | 01:30 | |
Why isn't this working ? | |||
:) | |||
01:37
nihiliad joined
02:04
eternaleye joined
02:07
aindilis joined
02:16
ejs left
02:20
aindilis` left,
Whiteknight left
02:22
hercynium left
02:29
mikehh joined
02:37
alester joined,
pugs_svn left
02:38
pugs_svn joined
02:39
agentzh left
02:40
agentzh joined
02:45
xinming left,
rhr_ left,
|jedai| left,
xinming joined,
rhr_ joined,
|jedai| joined
02:46
hercynium joined
02:49
broquaint left,
broquaint joined
03:07
Oxygenfadd left
03:15
mikehh left
03:19
mikehh joined
|
|||
pugs_svn | r25371 | wayland++ | S16: Redid things in terms of trees, at least somewhat. | 03:30 | |
03:54
Limbic_Region left
03:57
hercynium left
04:16
alc left
04:30
_jedai_ joined
04:32
|jedai| left
04:38
spooneybarger left
04:53
alc joined
04:55
justatheory left
|
|||
pugs_svn | r25372 | putter++ | [elfparse] analysis.pm: Sketched in a new pass to aggregate intra-regex p5 re equivalents. Reordered classes to match emit5.pm. | 05:07 | |
r25373 | wayland++ | S16: Started adding some DateTime stuff, but stopped pending some questions to the mailing | 05:09 | ||
r25373 | wayland++ | list. | |||
05:16
shinobi-cl left
05:25
rhr joined
05:27
eternaleye left
05:39
rhr_ left
05:40
alester left
05:47
jfredett_ joined
05:56
jfredett_ left,
alester joined
06:08
eternaleye joined
|
|||
pugs_svn | r25374 | wayland++ | Bits and pieces, but mostly trying to clean up the list of unfiled functions. | 06:15 | |
06:15
eternaleye left
06:17
eternaleye joined
06:22
yahooooo left
06:26
Tene_ joined
|
|||
pugs_svn | r25375 | wayland++ | Fixed operator overloading calls. | 06:29 | |
06:33
DemoFreak joined
06:40
justatheory joined,
Tene left
06:41
Caelum left
06:42
meppl joined,
Caelum joined
06:49
yahooooo joined
06:51
PantheraPardus joined
06:54
ashizawa joined
07:00
justatheory left
07:17
maerzhase joined,
maerzhase left
07:52
alester left
07:56
Sepheebear joined
|
|||
pugs_svn | r25376 | moritz++ | [t/spec] many small improvements: | 07:57 | |
r25376 | moritz++ | * variable declarations found by STD.pm | |||
r25376 | moritz++ | * accidentially passing junctions to ok() (found by Rakudo) | |||
08:04
bacek_ left
|
|||
pugs_svn | r25377 | moritz++ | [t/spec] fudge test in multi.t that throws a backtrace (used to be dies_ok | 08:17 | |
r25377 | moritz++ | instead of eval_dies_ok which is why it didn't occured before) | |||
08:19
iblechbot joined
08:20
masak joined
|
|||
masak | it's a bit unfortunate that the identifier 'Tree' is now squatted by an internal class in Perl 6, which is not general enough to reprenest an arbitrary tree data structure. | 08:23 | |
moritz_ | is it? which class? | ||
(I didn't follow all these commits to S16 all that close) | 08:24 | ||
masak | there's now a Tree role in S16. | ||
it represents some kind of directory structure | |||
Matt-W | Morning | ||
masak | morning, all M people! | ||
08:25
bacek_ joined
|
|||
Matt-W | :) | 08:25 | |
masak | also, the Date (!) role is in S16, and all its date components are typed as NumberName. | 08:26 | |
I haven't investigated why, but it seems strange to me at first sight. | |||
also, "NumberName", regardless of its purpose, sucks as a name. | |||
moritz_ | aye | 08:27 | |
Matt-W | hmmm | ||
'Tree' seems inappropriate for something specialised to directories | 08:28 | ||
masak | mostly a bit squatty, according to me. | 08:29 | |
'Tree' is even a common example when implementing recursive data structures. | |||
Matt-W | I could understand if it was File::Tree or something | 08:30 | |
masak | already much better. | ||
Matt-W likes namespaces, probably due to his other life as a C++ programmer | 08:31 | ||
08:31
bacek_ left
|
|||
dalek | kudo: 842ef38 | (Moritz Lenz)++ | Test.pm: Import Ovid's Test.pm with improved diagnostics. dies_ok 'some_string_here' that should really have been eval_dies_ok. That already caught some instances in the test suite. |
08:39 | |
masak | moritz_++ | 08:45 | |
that makes it feasible to use Test.pm in November and Druid. | |||
moritz_ | and it already caught some mistakes in the test suite | 08:48 | |
for example eval_dies 'some string' | |||
masak | there you go :) everyone's happier | 08:51 | |
what about eval_dies 'some string'? | |||
moritz_ | that's why I did it ;-) | ||
erm, I meant dies_ok 'some string' | 08:52 | ||
which should have been eval_~ | |||
I'd likek to make an alias 'git svnup' which does 'git svn fetch && git svn rebase' - any idea how to make an alias with two actions? | 08:53 | ||
ah, svnup = !two shell command here | 08:54 | ||
masak | there's a way, but I don't remember how. | 08:55 | |
I usually just do 'git svn rebase', and that seems to be enough. | |||
moritz_ | svnup = !git svn fetch && git svn rebase | ||
masak | have you tried just 'git svn rebase'? | 08:56 | |
moritz_ | that doesn't fetch, does it? | ||
it's hard to test unless somebody commits something to the test suite ;-) | 08:57 | ||
masak | now who would that be? | ||
masak reads t/TODO | |||
oh, it's t/TASKS | 08:58 | ||
moritz_ | ok, I'm now testing the expose-eigenstates branch | 09:01 | |
if all goes well and nobody objects, I'll also merge it into master | |||
masak | rakudo: my %h is KeySet; %h = (a => True, b => False, c => True); say %h.elems; %h<c> = 0; say %h.elems | 09:02 | |
p6eval | rakudo 842ef3: OUTPUTĀ«sh: ./parrot: No such file or directoryā¤Ā» | ||
masak | oh, it's rebuilding. | 09:03 | |
moritz_ | it's two minutes after the full hour | ||
:/ | |||
masak | I seem to hit that time quite often :) | ||
moritz_ | but I can tell you now that KeySet is NYI in Rakudo | ||
Matt-W | is the expose-eigenstates branch the one that provides a Junction.eigenstates method? | 09:04 | |
masak | moritz_: I suspected that. but do you think the output should be "2\n1\n"? | 09:06 | |
moritz_ | Matt-W: yes | 09:07 | |
masak: I have to re-read the synopsis... | |||
pugs_svn | r25378 | masak++ | [t/spec/S02-builtin_data_types/keyset.t] added some basic tests | ||
09:07
ludan joined
|
|||
masak | I can change it later if it turned out to be all wrong. | 09:07 | |
moritz_ | ah, git-svn rebase really does a git-fetch first | ||
masak | and you tricked me into committing a test file :) | 09:08 | |
not bad. :) | |||
moritz_ | how very disgusting of me ;-) | ||
masak | aye, highly unethical. :) | 09:09 | |
moritz_ | masak: but yes, I'd expect 2\n1\n | ||
masak | good. | ||
09:11
agentzh left
09:15
wayland joined,
agentzh joined
|
|||
wayland | Hi all. Can anyone tell me how to have a function run when a new class is created? | 09:15 | |
Do I name it "init", or is there something else? | |||
moritz_ | do you mean when a class is instantiated? | 09:16 | |
wayland | yes, thanks :) | 09:17 | |
masak | "init" works, then. | ||
no, wait :) | |||
moritz_ | masak: but it's not automatically called, right? | ||
masak | that's what we use as a workaround right now. | ||
moritz_ | wayland: look for BUILD and .new in S12 | ||
wayland | Ok, thanks. | 09:18 | |
moritz_ | wayland: I feare it's not yet implemented in Rakudo | ||
masak gets confused between real Perl 6 and fake Perl 6 sometimes | |||
wayland | Fine -- I'm writing specs now, not implementing yet :) | ||
moritz_ | good ;-) | ||
wayland | Incidentally, for all those concerned about the trees, the API is intended for all trees (ie. XML, LDAP), not just files | 09:19 | |
That's why I want to move it out of S16 eventually :) | |||
masak | wayland: I noticed that the Tree role contains the variable $cwn. that seems fairly file hierarchy specific to me. | 09:21 | |
wayland: if you ask me, implementing a general Tree role into the core of Perl 6, and expecting all implementations of Tree-like things to use it, is quite a risky thing to do. | 09:22 | ||
09:22
bacek_ joined
|
|||
masak | and I'm not saying this lightly, because the same type of criticism has been directed towards the Web effort, and I'm not sure I buy it there. | 09:23 | |
bacek_ | pugs: say ~ [\!=] 4, 5, 4 | 09:25 | |
p6eval | pugs: OUTPUTĀ«1ā¤Ā» | ||
bacek_ | yak. | ||
wayland | I agree that $cwn could appear to be filesystem-specific, but I'd like to suggest that anything that doesn't want to implement a $cwn should just return the same thing as $root | ||
bacek_ | Good evening. | ||
wayland | Incidentally, I don't expect everyone to use it, but I hope they will :) | 09:26 | |
To which Web effort do you refer? | |||
Incidentally, with NumberName, what do you call something that can either be Int 1 or Str "January"? :) | 09:27 | ||
masak | wayland: it's just that I can easily picture a scenario in which the name 'Tree' is taken, and people are inconvenienced by such an important name being taken by something which is not used for very much. | ||
wayland: I just remarked that some very different things all had the same type, and that I didn't immediately understand why it was named that way. | |||
wayland: I'm referring to this grant proposal, and the ensuing discussion: news.perlfoundation.org/2009/02/200...bpm_-.html | 09:28 | ||
wayland | Re: Numbername: I agree the things are different; it needs reworking, but I want to design a calendar object before I do more work on that :) | ||
Re: Tree: I hope we can make it general and yet useful enough that people will *want* to use it | 09:29 | ||
That's why I'm specifically keeping both filesystems and XML in mind as I work on it :) | 09:30 | ||
masak | wayland: your argumentation sounds so much like mine in the case of Web. :) | ||
wayland | Re: Web stuff, thanks for the link | ||
masak | but I just don't believe that a general Tree class that satisfies everyone, or even a sufficient percentage (whatever that might be) exists, or can exist. | ||
people have too different requirements for trees. | |||
designing a language also involves knowing when not to decide things for the programmer. | 09:31 | ||
wayland | Can you give an example that doesn't work with what I said? | ||
masak | maybe, if I think about it some. | ||
wayland | That would be useful; I want to make trees work for everyone :) | 09:32 | |
masak | if Tree is included in the synopses, it should be in the same place as all the other "container" classes. | ||
wayland | I agree about knowing when not to decide things. | ||
moritz_ | pugs: say [~] [\!=] 4, 5, 4 | ||
p6eval | pugs: OUTPUTĀ«1ā¤Ā» | ||
Matt-W | Why do the things in Date have to be NumberNames rather than numbers? | ||
wayland | Because sometimes we want them to be "January" instead of a number :) | 09:33 | |
masak | why not just enums? | ||
Matt-W | that's a formatting issue though | ||
wayland | Ok, I'll add "Investigate using enums" to my list. And you may be right about it being a formatting issue | ||
Matt-W | If you're going to go down that route I think you need something more intelligent than Int|Str | 09:34 | |
wayland | I've just written in my "TODO" list: Matt-W claims it's all a formatting issue, and that NumberName should die | 09:35 | |
Matt-W | hah | ||
moritz_ | btw wayland++ for the spec work | ||
wayland | As I said above, I want to get a Calendar class going first, and try to figure out how that interaces with locale | ||
pugs_svn | r25379 | leto++ | Add tests for log10 with Inf's and NaN's | ||
wayland | Thanks moritz_ :) | 09:36 | |
Matt-W | I am aware that the whole time/date thing is a right pain to deal with, so I do appreciate your efforts in that direction | ||
Ooh | 09:37 | ||
wayland | No worries :). I'm going to be heading out for a bit; should be back in just under an hour or so :) | ||
Matt-W | Sorry, reading a bit further it is clearly more intelligent than Str|Int | ||
masak | I also appreciate your efforts, wayland++. | ||
but I do think that Tree needs to go away. :) | |||
Matt-W | If you have subclasses specific to each field type | ||
hmm | |||
it might work | |||
especially if they're called something better than NumberName | |||
09:37
alc left
|
|||
Matt-W | it's possible that tying string formatting so closely into it is still a Bad Thing though. I don't know. | 09:38 | |
Matt-W goes away to switch his brain into Perl 5 mode for work | |||
wayland | masak: Have I said that I want to build an XPath-like thing on top of this tree interface? | 09:39 | |
masak | wayland: it all sounds very intriguing... for a CPAN module. | ||
not for the Perl 6 language, or anywhere near its core. | |||
wayland | masak: But it only works if we can select all kinds of things this way :) | ||
masak | I don't believe that. | 09:40 | |
wayland | (oh, and the XPath-like wouldn't be part of core :) ) | ||
Just the basic Tree stuff :) | |||
moritz_ | wayland: the beatuy of duct typing is that the select stuff doesn't have to fit into a particular type structure | ||
wayland | anyway, gotta go, but hopefully will get a chance to look at the backlog :) | ||
09:43
DemoFreak left,
eternaleye left,
pugs_svn left,
aindilis left,
renormalist left,
simcop2387 left,
zostay left,
literal left,
drbean left,
Southen_ left,
TimToady left,
szabgab left,
Khisanth left,
moritz_ left,
Sepheebear left,
nihiliad left,
lisppaste3 left,
Grrrr left,
c1sung left,
buu left,
PerlJam left,
orafu left,
IRSeekBot left,
agentzh left,
iblechbot left,
mikehh left,
lambdabot left,
yves left,
scrottie left,
gbacon left,
allbery_b left,
ilbot2 left,
elmex left,
broquaint left,
Patterner left,
idemal left,
silug left,
zev left,
dmpk2k left,
mdxi left,
jjore left,
Helios left,
awwaiid left,
nipotan left,
[cotto] left,
samlh left,
xinming left,
PantheraPardus left,
clkao left,
integral left,
oskie left,
Matt-W left,
LCamel left,
Caelum left,
r0bby left,
japhb left,
ft left,
tcliou|Away left,
meppl left,
_jedai_ left,
hcchien left,
jan_ left,
meteorjay left,
felipe left,
jnthn left,
Gothmog_ left,
revdiablo left,
gfldex left,
sunnavy left,
bigpresh left,
masak left,
yahooooo left,
rhr left,
[particle] left,
araujo left,
cognominal left,
avar left,
estrabd left,
preflex left,
edenc left,
wayland left,
jrockway left,
Eevee left,
wolverian left,
Maddingue left,
mtve left,
bacek_ left,
Tene_ left,
dalek left,
Nom- left,
frobnitz left,
s1n left,
kcwu left,
spinclad left,
pmichaud left,
f00li5h left,
baest left,
cls_bsd left,
cj left,
diakopter left,
c9s left
09:54
PerlJam joined,
Sepheebear joined,
nihiliad joined,
lisppaste3 joined,
Grrrr joined,
IRSeekBot joined,
buu joined,
orafu joined,
irc.freenode.net sets mode: +o PerlJam
09:55
idemal joined,
silug joined,
Helios joined,
mdxi joined,
dmpk2k joined,
nipotan joined,
zev joined,
awwaiid joined,
jjore joined,
wayland joined,
jrockway joined,
Eevee joined,
wolverian joined,
mtve joined,
Maddingue joined,
pmichaud joined,
bacek_ joined,
Tene_ joined,
dalek joined,
Nom- joined,
frobnitz joined,
s1n joined,
kcwu joined,
c9s joined,
cj joined,
f00li5h joined,
diakopter joined,
baest joined,
spinclad joined,
cls_bsd joined,
irc.freenode.net sets mode: +oo pmichaud diakopter,
jnthn joined,
c1sung joined,
masak joined,
PantheraPardus joined,
yahooooo joined,
Caelum joined,
meppl joined,
rhr joined,
_jedai_ joined,
xinming joined,
[particle] joined,
araujo joined,
clkao joined,
hcchien joined,
cognominal joined,
avar joined,
integral joined,
oskie joined,
jan_ joined,
japhb joined,
Matt-W joined,
r0bby joined,
meteorjay joined,
ft joined,
felipe joined,
gfldex joined,
revdiablo joined,
bigpresh joined,
preflex joined,
sunnavy joined,
edenc joined,
Gothmog_ joined,
estrabd joined,
irc.freenode.net sets mode: +o jnthn,
samlh joined,
[cotto] joined,
broquaint joined,
Patterner joined,
agentzh joined,
iblechbot joined,
mikehh joined,
lambdabot joined,
yves joined,
elmex joined,
ilbot2 joined,
scrottie joined,
allbery_b joined,
gbacon joined,
moritz_ joined,
LCamel joined,
tcliou|Away joined,
DemoFreak joined,
eternaleye joined,
pugs_svn joined,
aindilis joined,
renormalist joined,
simcop2387 joined,
zostay joined,
literal joined,
drbean joined,
Southen_ joined,
Khisanth joined,
szabgab joined,
TimToady joined,
irc.freenode.net sets mode: +oo moritz_ TimToady
|
|||
wayland | moritz_: You said: wayland: the beatuy of duct typing is that the select stuff doesn't have to fit into a particular type structure | 09:59 | |
09:59
bacek__ joined
|
|||
wayland | I'm assuming you mean "Duck Typing", otherwise I have some new learning to do | 09:59 | |
10:00
AzureStone joined
|
|||
moritz_ | wayland: yes, I did - but it sometimes reminds me of stuff that's hold together with duct tape ;-) | 10:00 | |
wayland | Yes :) | ||
moritz_ | which is why I use these two terms interchangably | ||
10:00
bacek_ left
|
|||
wayland | I'm having trouble seeing the relevance of what you said to anything I said; am I right in presuming it was in reference to trees? | 10:01 | |
moritz_ | yes | ||
what I meant is that an Xpath like query can work on arbiratry Perl 6 data structures | 10:02 | ||
wayland | And worrying about forcing things into the Tree::Node-type data structure? | ||
moritz_ | it doesn't have to be organized in structures of a particular type | ||
wayland | Oh, I see what you're getting at | ||
I'll have to think about that one for a while :) | |||
moritz_ | basically Positional and Associative give you two abstractions already | ||
anything list-like does Positional | |||
and anything hash-like does Associative | 10:03 | ||
so if your implicit tress are made out of lists/hashes/similar stuff you don't need a separate tree inerface | |||
wayland | I see what you're saying, but does that cover *everything? | ||
moritz_ | not everything | 10:04 | |
but you can't treat everything as a tree either | |||
wayland | Sorry, I'm thinking specifically of XML here :) | ||
pugs_svn | r25380 | wayland++ | Fixed .new() methods to have correct name (instead of .init(), like I had) | ||
wayland | Which is definitely tree-like | 10:05 | |
moritz_ | wayland: if you think of a XML::Simple like representation of XML, then it's certainly tree-like in my sense | 10:06 | |
wayland | I guess I'm just thinking that things like $parent and $owner could be quite useful :) | ||
I'm wanting Tree::Node to do Positional and Associative container-like roles, though, so that it will behave "normally"; cleverness under the hood, but easy things easy :) | 10:08 | ||
10:09
riffraff joined
|
|||
wayland | masak: In regards to the Web.pm framework, are you aware that XForms has MVC built in? :) | 10:11 | |
masak | wayland: slightly, yes. | 10:12 | |
wayland | Ok. And have you considered developing a HTTP grammar? | 10:13 | |
:) | |||
masak | that's certainly a nice idea. | ||
but I don't think it's planned for the 11-week project, no. | 10:14 | ||
bacek__ | masak: HTTP grammar is quite easy :) | ||
masak | I don't doubt it. | 10:15 | |
Matt-W | useful, too | ||
10:15
bacek__ is now known as bacek
|
|||
wayland | Before I got into the S16 spec, I was wondering about protocol grammars, and whether they'd be really cool combined with an event loop (think POE) and a finite-state machine :) | 10:16 | |
10:17
sri_kraih joined
|
|||
moritz_ | wayland: re your last S16 commit, please embrace the power of named parameters for .new() | 10:17 | |
bacek | wayland: S05 is your friend :) | 10:18 | |
moritz_ | wayland: and why does it return a Bool? | ||
wayland | bacek: Did you mean S06-subroutines? | 10:25 | |
Matt-W | it's too late! Perl 6 is sneaking into my Perl 5 code! | 10:28 | |
wayland | moritz_: Sorry, I appear to have confused named arguments with named parameters | ||
Matt-W | unfortunately perl 5 doesn't understand @*ARGS | ||
masak | Matt-W: tell me about it. | ||
:/ | |||
wayland | Matt-W: That's why I'm working on perl 6 :) | ||
moritz_ | what's wrong with perl 5's @ARGV? | ||
Matt-W | nothing, I just keep typing @*ARGS | ||
wayland | Once you've written in perl 6, you can't go back :) | 10:29 | |
masak | nothing particularly wrong about it, it's just spelled differently. | ||
wayland | moritz_: Aren't named arguments what I want? That way, they can be done either as positional *or* named, right? | 10:30 | |
moritz_ | wayland: yes, but for a not-so-small number of parameter I'd like them to be force to be named | ||
wayland: because then the code on the caller side is much easier to understand | 10:31 | ||
wayland | Ok, but what about TMTOWTDI? :) | ||
masak | it's not an excuse to complicate things. | 10:32 | |
wayland | I presume you have IO::Socket::TCP particularly in mind. How about we leave the first 4 as they are, and name the rest? | ||
(sorry, named-parameter the rest?) | |||
moritz_ | wayland: the default .new method inherited from Object is all-named only. It would be just consistent to keep it that way - ymmv | 10:33 | |
wayland | Ok. But I think "simple things simple" comes in here, at least with regards to the first two parameters, which always have to be given. Likewise with the spec (path or whatever) for an IO::File | 10:35 | |
masak | it would feel a bit strange to me if a class in the spec chose to override the customary way to pass arguments for no good reason. | 10:36 | |
moritz_ | wayland: maybe there should be a built-in function then that does this stuff? | ||
wayland: like connect($x, $y, *%_) callling Stuff.new(ip => $x, port => $y, |%_) | 10:37 | ||
then we could have a DWIM function and a DWIM constructor all at the same time | |||
wayland | Interesting. I'll sit here and think about this for a bit :) | 10:38 | |
That could get really confusing. connect('example.org', 80, NoOpen => 1) would give you a socket that hadn't connected yet :) | 10:39 | ||
I'll keep thinking :) | 10:40 | ||
Btw, is the face that the default .new() method is all named-only specced somewhere? | 10:42 | ||
My suggestion would be that the way to think about it is that the customary way to pass arguments is that optional ones should be named-only, but that mandatory ones should be able to be positional as well | 10:44 | ||
moritz_ | probably implictly in S12 | ||
wayland | And the fact that the default .new() is all named-only is a side effect of the fact that none of its arguments are compulsory :) | ||
Ok, I read S12 and changed my mind :) | 10:45 | ||
Will fix :) | |||
It may break "easy things easy", though. Will have to think of a way to work on that. | 10:47 | ||
Btw, the example I've included of $fobj = new IO::File($filename, :w); is one that I don't know how to write the method declaration for | 10:48 | ||
What would the thing that receives the :w look like? | |||
I had it down as $options?, but that's clearly wrong :) | |||
jnthn | Good morning. :-) | 10:55 | |
jnthn is a little ill, but has slept it off mostly this morning and is ready for a day's Rakudo hacking. | |||
10:56
agentzh left
|
|||
moritz_ | OH HAI | 10:56 | |
10:56
agentzh joined
|
|||
masak | jnthn: HAI | 10:57 | |
Matt-W | wayland: as I understand it, :w is a pair constructor equivalent to :w(1) or w => 1, so it might be an optional named parameter called w | ||
bacek | jnthn: OH HAI | ||
masak | Matt-W: aye. | 10:58 | |
moritz_ | :$w would accept :w | ||
Matt-W | S02 has a table of what the colon pair syntax does | ||
jnthn | wayland: You can also override new to take whatever you want. | ||
masak | but don't do that unless the standard way is inadequate somehow. :) | 11:00 | |
Matt-W | There needs to be a statement of convention for standard library stuff | ||
masak | well, things should be as simple as possible, but no simpler, if you ask me :) | 11:01 | |
bacek | pugs: say ~ [\!=] 4, 5, 4 | 11:02 | |
p6eval | pugs: OUTPUTĀ«1ā¤Ā» | ||
bacek | What is expected result here? (1,1,1)? | ||
masak | bacek: what is the first comparison done against? | 11:03 | |
jnthn | Or (1,1) - I'd need to re-check the spec. | ||
moritz_ | I think (1, 1) | ||
what jnthn said ;-) | |||
Matt-W | masak: yes but what's simple? | ||
bacek | in S03/reduce-metaop.t expected (1,0,0) and I don't understand why... | ||
moritz_ | wait... what associativy does != have? | 11:04 | |
left? | |||
masak | Matt-W: it varies. in this case, I'd say it's not overriding new. | ||
moritz_ | then the result would be (4 != 5), ((4 != 5) != 4) | ||
wayland | jnthn: stomach-ill, cold ill, ??? | 11:05 | |
Matt-W | masak: I would have thought that you'd want to override new in the majority of cases - you just give it an argument list that looks like you didn't | ||
moritz_ | remember, if you overwrite .new to use positional parameters, all subclasses ahve to take extra care | ||
Matt-W: if you just want to do some initialization, a BUILD submethod is just fine | |||
bacek | rakudo: say [!=] 4,5,4 | 11:06 | |
p6eval | rakudo 842ef3: OUTPUTĀ«Class 'Perl6MultiSub' not foundā¤current instr.: 'parrot;Perl6Role;!add_variant' pc 2691 (src/classes/Role.pir:42)ā¤Ā» | ||
Matt-W | yes when are we going to get BUILD implemented in Rakudo? | ||
masak confesses to not having grokked the Perl 6 OO system fully yet | |||
Matt-W | then we can really start to get used to the idea that we don't override new | ||
moritz_ | masak: but how does? ;-) | ||
bacek | moritz_: so, result (1,1,1) is correct? | ||
masak | moritz_: Larry, hopefully. | 11:07 | |
moritz_ | pugs: say ([\+] 1, 2, 3).perl | ||
p6eval | pugs: OUTPUTĀ«(1, 3, 6)ā¤Ā» | ||
jnthn | Matt-W: We already *do* have build, IIRC. | ||
moritz_ | rakudo: class A { submethod BUILD { say "OH HAI" } }; A.new(); say "end" | ||
p6eval | rakudo 842ef3: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
masak | moritz_: shall I? | 11:08 | |
bacek | bacek@icering:~/src/parrot/languages/rakudo.bacek$ ../../parrot perl6.pbc -e 'say ([\+] 1, 2, 3).perl' | ||
[1, 3, 6] | |||
moritz_ | masak: no, I'm already doing it | ||
rakudo: class A { submethod BUILD { say "OH HAI" } }; A.new(); say "end" | |||
masak | oki | ||
p6eval | rakudo 842ef3: OUTPUTĀ«too many arguments passed (3) - 1 params expectedā¤current instr.: 'parrot;A;BUILD' pc 137 (EVAL_19:64)ā¤Ā» | ||
moritz_ | rakudo: class A { submethod BUILD(%_) { say "OH HAI" } }; A.new(); say "end" | ||
p6eval | rakudo 842ef3: OUTPUTĀ«Non-Associative argument for %_ in call to BUILDā¤current instr.: 'die' pc 17013 (src/builtins/control.pir:204)ā¤Ā» | ||
moritz_ | rakudo: class A { submethod BUILD(*%a) { say "OH HAI" } }; A.new(); say "end" | ||
p6eval | rakudo 842ef3: OUTPUTĀ«positional inside named args at position 2ā¤current instr.: 'parrot;A;BUILD' pc 137 (EVAL_19:64)ā¤Ā» | ||
masak | well, there's _something_ there. :) | 11:09 | |
moritz_ | rakudo: class A { submethod BUILD(%@a, *%a) { say "OH HAI" } }; A.new(); say "end" | ||
p6eval | rakudo 842ef3: OUTPUTĀ«Malformed method definition at line 1, near "BUILD(%@a,"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
moritz_ | rakudo: class A { submethod BUILD(*@a, *%a) { say "OH HAI" } }; A.new(); say "end" | ||
p6eval | rakudo 842ef3: OUTPUTĀ«OH HAIā¤endā¤Ā» | ||
bacek | Victory! | ||
moritz_ | after onnly a few hundret attempts I start to get it right | ||
11:09
jan_ left
|
|||
jnthn | Hmm. | 11:09 | |
moritz_ | rakudo: class A { submethod BUILD(*@a, *%a) { say "OH HAI"; say @a.perl } }; A.new(); say "end" | ||
masak makes a note to update various projects to use BUILD. | |||
p6eval | rakudo 842ef3: OUTPUTĀ«OH HAIā¤Method 'perl' not found for invocant of class 'A'ā¤current instr.: 'parrot;List;perl' pc 5894 (src/classes/List.pir:224)ā¤Ā» | ||
jnthn | Should check the spec... | ||
But IIRC pm said that it's correct. | |||
moritz_ | ah | 11:10 | |
it receives an Object of A as argument | |||
jnthn | (On BUILD) | ||
moritz_ | not the same args as new gets (which is what I suspected) | ||
masak | rakudo: class A { method perl { '[]' }; } say A.new.perl | ||
p6eval | rakudo 842ef3: OUTPUTĀ«Statement not terminated properly at line 1, near "say A.new."ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
masak | oops. | ||
rakudo: class A { method perl { '[]' } }; say A.new.perl | |||
p6eval | rakudo 842ef3: OUTPUTĀ«[]ā¤Ā» | ||
pugs_svn | r25381 | bacek++ | [t/spec] Fix triangle form of reduce metaop tests. | 11:11 | |
bacek | rakudo: sub foo { 1;; }; say foo | ||
p6eval | rakudo 842ef3: OUTPUTĀ«Null PMC access in isa()ā¤current instr.: 'parrot;List;!flatten' pc 5976 (src/classes/List.pir:283)ā¤Ā» | ||
bacek | jnthn: nice bug in PCT :) | 11:12 | |
Is reduce metaop should take care about associativy? | 11:14 | ||
moritz_ | bacek: yes | ||
pugs: say [**] 2, 3, 4 | |||
p6eval | pugs: OUTPUTĀ«2417851639229258349412352ā¤Ā» | ||
moritz_ | pugs: say 2 ** 3 ** 4 | ||
p6eval | pugs: OUTPUTĀ«2417851639229258349412352ā¤Ā» | ||
moritz_ | pugs: say (2 ** 3) ** 4 | ||
p6eval | pugs: OUTPUTĀ«4096ā¤Ā» | ||
moritz_ | bacek: see? it does | ||
bacek | rakudo: say [**] 2,3,4 | ||
p6eval | rakudo 842ef3: OUTPUTĀ«4096ā¤Ā» | 11:15 | |
bacek | heh :) | ||
moritz_ | care to submit a bug report? ;-) | ||
bacek summon masak :) | |||
masak | bacek: I'm going to lunch. :) | ||
maybe afterwards. | |||
moritz_ | rakudo: say 2 ** 3 ** 4 | 11:16 | |
p6eval | rakudo 842ef3: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
moritz_ | rebuilding again... :( | ||
pugs_svn | r25382 | wayland++ | Fixed some things people were complaining about. | ||
bacek | moritz_: care to submit unittest? :) | 11:17 | |
moritz_ | bacek: after lunch ;-) | ||
bacek | Hey! I already got my dinner! | 11:18 | |
wayland | Its bedtime here in a few minutes :) | ||
bacek | wayland: where are you from? | ||
wayland | Australia/Melbourne/Geelong/Drysdale :) | 11:19 | |
Thats why I get som much done when everyone's asleep, and sleep while you're all answering my e-mail :) | |||
bacek | $ date | 11:21 | |
Wed Feb 18 22:21:08 EST 2009 | |||
:) | |||
wayland | That's me :) | ||
bacek | No, that's me! :) | 11:22 | |
wayland | $ date | ||
Wed Feb 18 22:21:23 EST 2009 | |||
Ok, same zone then. | |||
bacek | Yeah. Australia/Sydney :) | 11:23 | |
wayland | Oh, I see you're in AU as well :) | ||
dalek | kudo: af2cace | jnthn++ | build/Makefile.in: [build] Comment lines must have # at start of line to keep nmake happy. |
11:25 | |
kudo: 044ba5e | jnthn++ | build/Makefile.in: I have some issues building the fakeexecutable here; making test and spectest just depend on a perl6.pbc (which is what they actually *need*) for now. |
11:29 | ||
wayland | Btw, does anyone know if we're going to get a release schedule for rakudo now that it's not in the parrot repository any more? | 11:36 | |
I'll backlog to read the answer to that, as it's bedtime for me now (and in case the Australians et. al. are wondering, I'll read in bed before sleeping :) ) | 11:38 | ||
bacek | wayland: You joking! You are going to have some beer! I know! | ||
Matt-W | bacek: and a bbq, don't forget the bbq | 11:40 | |
bacek | Matt-W: It's too late for BBQ.. But it always a good time for a beer in Australia :) | 11:41 | |
rakudo: say 2**3**4 | |||
p6eval | rakudo 044ba5: OUTPUTĀ«4096ā¤Ā» | ||
Matt-W | never too late! | 11:42 | |
never! | |||
bacek | one line patch in grammar-oper.pg | ||
Matt-W: no. It's never too early for BBQ! | |||
Matt-W | it's never too early to start tomorrow's :) | 11:43 | |
11:50
magnarjg left
12:00
ruoso joined
|
|||
ruoso | wayland, Hi... I've just sent a reply about the date/time thing... can we please use DateTime instead of Time::Piece or Date::Time | 12:02 | |
DateTime is far more complete than any other.... | |||
just look at its ecosytem in CPAN | |||
pugs_svn | r25383 | ruoso++ | [mildew] advancing a little bit in the bootstrap.dot | 12:05 | |
12:06
magnarjg joined
12:08
ashizawa left
12:14
jan_ joined
|
|||
masak | wayland: re release schedule for Rakudo: yes, I heard pmichaud say that it'll be 'two days (or so) after each Parrot release' until further notice. | 12:32 | |
masak submits a but report for bacek | 12:33 | ||
moritz_ | or one week after parrot release | ||
pugs_svn | r25384 | jnthn++ | [t/spec] A couple of tests for class :: is Foo { } stuff. | 12:36 | |
r25385 | jnthn++ | [t/spec] Tests for punning of roles into classes used with inheritance. | |||
dalek | kudo: 5d74999 | jnthn++ | src/parser/ (3 files): Support :: for declaring anonymous classes etc that can inherit from something. This incorporates the recent STD.pm change for this. |
12:39 | |
pugs_svn | r25386 | ruoso++ | [smop/src-s1p] fix doc of ClassHOW. | 13:05 | |
r25386 | ruoso++ | [smop/lowdoc] getting the description of the runloop up-to-date. | |||
r25386 | ruoso++ | [mildew] more work on bootstrap.dot | |||
r25386 | ruoso++ | [mildew/prelude] Multi is a role, in the bootstrapping we are going to use an incomplete RoleHOW for the first initialization of it, it should be re-inited later with more complete types as dependencies (see bootstrap.dot) | |||
dalek | kudo: 6663565 | jnthn++ | src/classes/Object.pir: Fix initialization of parent attributes; resolves RT#61488. |
||
13:07
hanekomu joined
|
|||
ruoso | @tell pmurias I've made some changes on Multi.pm, already in the way of the planned bootstrap... It now will look for RoleHOW (as soon as mildew recognizes it), so the simplified RoleHOW can be implemented in SMOP... | 13:11 | |
lambdabot | Consider it noted. | ||
pmichaud | jnthn: what issues are you having with the fakecutable? I was sorta planning to switch the tests to use it instead of the .pbc | 13:29 | |
(good morning, btw :-) | 13:30 | ||
jnthn | pmichaud: My compiler gives out of memory warning while trying to compile it! | ||
I could get a newer compiler maybe. ;-) | |||
pmichaud | ouch. | ||
the C compiler does that? | |||
jnthn | Yes! | ||
I think I can give it a flag to tell it that it may allocate more memory though. | |||
Need to look it up. | |||
Then I guess, hack Configure. | 13:31 | ||
I'm a tad worried about using the perl6 fakeexecutable for tests because of the lingering destruction ordering issues. | |||
pmichaud | yes, I thought of that too, but I'm more worried about the "I can't build and run Rakudo" issues that newbies typically have | ||
jnthn | Aye, there is that. | 13:32 | |
pmichaud | and I was hoping to get rid of the "look for ../../parrot and parrot/parrot" hack in t/harness | ||
jnthn | Have you tried it with the fakeexecutable to see what the fallout is? | ||
pmichaud | a few others reported no big issues, I was going to do that here shortly though. | 13:33 | |
moritz_ | last time I tried it there was no fallout (tested about a week ago) | ||
jnthn | OK. | ||
moritz_ | but it might be worth to check on windows as well | ||
jnthn | Aye. | ||
moritz_ | does system qw(./perl6 scrpit.pl) works on windows? | 13:34 | |
(ie without the .exe suffix) | |||
jnthn | no | ||
./ will upset windows | |||
but perl6 script.pl is fine | |||
moritz_ | but not on unix | ||
unless we first push . to $ENV{PATH} | |||
jnthn | Ah, and .\perl6 is OK too | ||
So if you use ${slash} kinda thingy, it'll be OK. | 13:35 | ||
moritz_ | so perl doesn't translate the forward slash automatically? what a pity... | ||
pmichaud | yes, I find that odd also. | ||
jnthn smokes a fix for a moritzticket. | |||
Matt-W | invoking stuff just isn't cross-platform | 13:36 | |
avar | moritz_: This is why we have portable path libraries in the core | ||
jnthn | oh, it seems it does | ||
C:\Consulting\parrot\trunk>perl -e "print `./parrot`" | |||
parrot -[abcCEfgGhjprStvVwy.] [-d [FLAGS]] [-D [FLAGS]][-O [level]] [-o FILE] <f | |||
ile> | |||
pmichaud | I've never had slash issues with Perl on Windows, fwiw, so I'm always a little surprised when others report them. | 13:37 | |
moritz_ | avar: that are ugly to use, yes | ||
pmichaud | I know there are issues with batch and make files, but not with Perl. | ||
jnthn | pmichaud: OK, so maybe it will work. | ||
pmichaud: Yeah, I musta been thinking of the makefile issues. | |||
13:37
xuser joined
|
|||
pmichaud | jnthn: but then why do we need ${slash} in Configure.pl ? | 13:37 | |
(I know we need it for the makefile generation, but I mean in the other places we use it) | 13:38 | ||
jnthn | pmichaud: Not enitrely sure. I doubt I just added them for the fun of it though. ;-) | ||
pmichaud | i.e., in the "list of parrot-configs to invoke"? | ||
jnthn | pmichaud: Ah, hmm. | 13:40 | |
pmichaud is growing very weary of writing build and configure code, wants to do real rakudo and pge and pct hacking again. :-| | |||
jnthn | OK, more testing later, it seems the ${exe} suffix is needed for open. | ||
But it does do stuff with / | |||
pmichaud | you mean "slash works"? | 13:41 | |
i.e., you mean it works with / as well as \ ? | |||
jnthn | Yeah, I *think* in a perl -e test... | ||
Yes. | |||
pmichaud | okay. | ||
jnthn | Let's see if I pull ${slash} out of that list, if it keeps working... | ||
13:41
masak left
|
|||
pugs_svn | r25387 | jnthn++ | [t/spec] Tests for does inside package. | 13:42 | |
jnthn | oh arse, I committed two things in that last pugs repo patch... | 13:43 | |
pmichaud: OK, seems I can remove the ${slash} there after all... | 13:44 | ||
pmichaud | okay, that offers more hope for the fakecutable approach again. | ||
dalek | kudo: d2d0d84 | jnthn++ | src/parser/ (2 files): Support use of does inside packages. |
||
pmichaud | although the fact that it doesn't build on your system is.... interesting. | 13:45 | |
maybe we just copy the parrot executable into rakudo's root directory. | 13:47 | ||
then we always run ./parrot | |||
jnthn | Gah, I guess I have to patch pbc2exe or something. | 13:48 | |
pmichaud | I wouldn't expect a patch to pbc2exe to be needed. | ||
dalek | kudo: 7c5baa4 | jnthn++ | Configure.pl: Turns out we don't need $slash in the Configure.pl for Windows to work - the $exe was the important thing. |
13:49 | |
jnthn | OK, I need to *somewhere* sneak in an extra flag to the compiler... | ||
pmichaud | seems like one would want to update Parrot's configure | ||
jnthn | Yeah, I guess I can do it globally. | ||
pmichaud | since pbc2exe just uses the flags from the parrot config | ||
jnthn | oh heh | ||
We already *are* putting that flag in. | |||
-Zm400 | |||
pmichaud | it's just that 400 isn't large enough? | 13:50 | |
jnthn | s/400/800/ will do it ;-) | ||
pmichaud | ah, that works. | ||
jnthn | heh, 1000 for the win ;-) | ||
13:50
hanekomu left
|
|||
jnthn | Future proofing ;-) | 13:50 | |
pmichaud | then we can just update PARROT_REVISION to the new value. | 13:51 | |
and I don't need to figure out the svn r#### for 0.9.1 | |||
jnthn | :-) | ||
pmichaud | (and hopefully the batch of post-release commits to parrot haven't broken rakudo) | ||
jnthn | It's spectesting fine here. | 13:52 | |
pmichaud | you're using parrot head? | ||
jnthn | Aside from the usual arith | ||
Yeah. | |||
pmichaud | okay, good. | ||
jnthn | I got latest Parrot this mroning. | ||
OK, just testing my configure change, then I'll put it in. | |||
pmichaud | excellent. | ||
jnthn | Got us back down to 250 RTs. ;-) | 13:53 | |
pmichaud | I have a couple of short errands; will do that and then clean/update everything on my machine and see where we stand. | ||
jnthn++ # reducing RTs | |||
jnthn | Ok, great. | ||
erm. I seem to lack a Parrot commit bit?! | 13:59 | ||
moritz_ | do you? ;-/ | ||
jnthn: you need to use the credentials for your trac account | |||
jnthn | Aye...I just checked that those work...even updated password. | 14:00 | |
And...no luck. | |||
moritz_ | jnthn: then bother coke and other meta committers | ||
14:03
magnarjg left
|
|||
jnthn | pmichaud: There is another issue in that it now doesn't find libparrot.dll. | 14:07 | |
(That is, it compiles, but running perl6.exe gives the error.) | 14:08 | ||
pmichaud | okay, I have no clue there. | 14:10 | |
jnthn | copy ..\..\libparrot.dll . | 14:12 | |
Does it. | |||
moritz_ | I've pushed a branch called 'fakexecutable' to github | 14:13 | |
jnthn | Just not sure where to put that... | ||
moritz_ | where I tried to change all scripts to use ./perl6 for invokation | ||
pmichaud | I'm a little worried about synchronization issues with copying parrot and or dll's around. | 14:17 | |
jnthn | OK | 14:19 | |
Alternative is path with Parrot in needs to be in the path. | |||
That's the only two fixes I'm aware of... | |||
erm | |||
...directory with libparrot in... | |||
Why/how does it work elsewhere? | 14:20 | ||
pmichaud | I don't know why it has worked for others. | ||
jnthn | Ah. :-) | ||
pmichaud | we've always been able to create the fakecutable before without having to muck with parrot.dll, afaik | ||
*libparrot.dll | 14:21 | ||
jnthn | Sure, well you can if you create it in the same directory as Parrot. | ||
pmichaud | I don't know why it's a problem now. | ||
but we haven't been creating it in the same directory as parrot | |||
jnthn | Which means libparrot.dll was in the same directory as the fakeexecutable. | ||
pmichaud | we've always been creating it in languages/perl6 | ||
jnthn | It's not about where you create it. | ||
It's about where you run it from. | |||
pmichaud | same thing | ||
jnthn | make perl6 gave you a perl6 in the directory you built Parrot. | ||
pmichaud | afaik people have been running it from languages/perl6 | ||
jnthn | On Win32? | 14:22 | |
pmichaud | yes, at least that's what I thought. | ||
jnthn | It may have worked, but I don't remember every trying that... | ||
I ain't sure, what a good solution would be though. Hmm. | 14:23 | ||
Twiddling the path is evil. | |||
And won't work if people run it later. | |||
pmichaud | agreed, I don't like the path approach. | 14:24 | |
jnthn | And I can't think of an alternative to copying libparrot. Like it as I don't... | ||
I guess we can do it only if we know it's not an installed Parrot. | |||
dalek | kudo: 9e72b9d | jnthn++ | build/gen_metaop_pir.pl: Generate min= and max= meta-ops. Patch courtesy of bacek++. |
||
pmichaud | well, there's always the alternative of not using the fakecutable. | ||
jnthn | True. ;-) | ||
pmichaud | which means we need a clean mechanism for running the compiler itself. | 14:25 | |
moritz_ | a batch/shell script generated by Configure.pl? | ||
I fear it doesn't qualify as "clean" | 14:26 | ||
14:26
rindolf joined
|
|||
jnthn | Is what we're doing now so terrible? | 14:27 | |
For the time being anyway. | |||
pmichaud | jnthn: at the Frozen Perl hackathon, build and invocation issues far dwarfed anything else we might have been able to do. | ||
it was a serious showstopper. | 14:28 | ||
jnthn | Aside from this Win32 issue, is the fakeexecutble the cleanst solution? | ||
pmichaud | the fakecutable is fairly clean. With it, the build becomes: "make; perl6 hello.pl" | ||
i.e., it falls more naturally into people's expectations. | 14:29 | ||
jnthn | OK | ||
pmichaud | without it, we have to say "run parrot using perl6.pbc", and we can't say for certain where parrot is located. | ||
jnthn | Then let's do that. | ||
And *on Win32 only* we'll copy libparrot.dll into place for the time being. | |||
pmichaud | libparrot.dll gets built in the parrot root? | 14:30 | |
jnthn | It may not be *perfect* but it's a minor problem compared to the more major ones not doing the fakeexecutable solves. | ||
Yes. | |||
pmichaud | weird. | ||
jnthn | Well | ||
The reason it gets built there is so it's in the same directory as parrot.exe. | |||
So it finds it. | |||
pmichaud | I mean "weird" from a packaging viewpoint, not from a "this is what windows requires" viewpoint. From a windows perspective, it's completely normal. | ||
jnthn | On Win32 the DLL, AFAIK, needs to be either in the same directory or in a directory that's in the path. | ||
pmichaud | right. | ||
jnthn | Well, the move more and more is for things on Win32 to be isolated. | 14:31 | |
Rather than to depend on shared stuff. | |||
pmichaud | I'd really like to see Win32 isolated. :-P | ||
jnthn | .Net rather encourage that model. | ||
:-P | |||
pmichaud | I try to isolate Win32 as much as I can. | ||
jnthn | Unfortunately, it's run by over 80% of the world. :-P | 14:32 | |
Or something. | |||
pmichaud | I agree that it definitely runs over things. | ||
14:32
maerzhase joined
|
|||
jnthn | Anyways...do you think copy on Win32 is a good enough solution for now? | 14:32 | |
pmichaud | yes. | ||
I can't think of better. | |||
jnthn | Not that I hold much hope of me coming up with a better future one, but somebody may. | 14:33 | |
pmichaud | we might need to tweak the makefile dependencies to make sure the libparrot.dll remains "current" | ||
jnthn | "patches welcome" ;-) | ||
pmichaud | exactly. I'm a little disappointed more people haven't been patching the build system. | ||
jnthn | I was pondering copying it each time we build perl6.exe | ||
pmichaud | hmmmm | ||
moritz_ | I'm always afraid to break win stuff when I change the build/configure system | 14:34 | |
jnthn | So it's always up to date with what we built that against. | ||
Also build/configure stuff is...well...boring. ;-) | |||
(Alas, important.) | |||
pmichaud | something bugs me about the "copy each perl6.exe build" approach. | 14:35 | |
jnthn | Specifically? | ||
Or rather, where would you do it instead? | |||
14:36
nihiliad left
|
|||
pmichaud | I'm bugged that someone might want to have a different libparrot.dll that they copied (more) | 14:36 | |
however I'm not going to worry about it. I'm tired of spending cycles on it already. | |||
so, do it that way and we'll say "patches welcome" if it causes problems for anyone. | |||
jnthn | We're not creating the solution for ever. We're creating something that solves enough of the problems now so we can do other stuff and people can play with little hinderance. :-) | 14:37 | |
And yes, patches welcome. :-) | |||
14:39
Tene joined
|
|||
Matt-W | Really you shouldn't even need to say that | 14:40 | |
Patches always seem to be welcome | |||
pmichaud | Matt-W: we generally say that to indicate "yes, it doesn't work right. Would you like to help us fix it?" | ||
Matt-W | true, true | 14:41 | |
moritz_ | "patches welcome" is swaheli for "fix it or shut up" ;-) | ||
Matt-W | and no, I wouldn't | ||
it's a can of worms | |||
biting ones | |||
so you're welcome to it :) | |||
Matt-W hides | |||
14:42
hercynium joined
|
|||
jnthn | pmichaud: OK, done, pushed. | 14:44 | |
dalek | kudo: 5c7da38 | pmichaud++ | build/PARROT_REVISION: Bump PARROT_REVISION to include compiler VM size fix in r36856. |
14:46 | |
kudo: c18fafa | jnthn++ | (2 files): Copy libparrot.dll into place for Win32, so perl6.exe works. |
|||
kudo: 876c093 | jnthn++ | build/PARROT_REVISION: Merge branch 'master' of [email@hidden.address] |
|||
14:49
dalek left,
dalek joined,
Tene_ left
14:56
Southen joined
14:58
masak joined,
sri_kraih left
|
|||
pmichaud | here's been my initial outlines/thoughts | 15:00 | |
1. create src/settings/*.pm | 15:01 | ||
15:01
Util joined
|
|||
pmichaud | e.g., Int.pm, List.pm, Hash.pm, etc | 15:01 | |
2. adjust build system to concatenate the *.pm files together and compile to .pir | |||
3. include the .pir in the final stage compilation step | 15:02 | ||
4. profit | |||
inside of the *.pm files, prefer class Foo is also { ... } style to class Foo; style | |||
masak misses the '???' step | |||
pmichaud | at the moment I'm focusing on the non-operator forms | 15:03 | |
moritz_ | pmichaud: what's the reason for not compiling the .pm's separately? | ||
pmichaud: that would give better error messages | |||
masak | pmichaud: why 'settings' instead of 'setting'? | ||
pmichaud | I can go for setting, yes. | ||
15:03
wknight8111 joined
|
|||
jnthn | Yes, singular. | 15:03 | |
OK, so is the aim that we start to move, class by class? | |||
pmichaud | (separate compile) -- right now, every compilation to pir generates a prologue to automatically load perl6.pbc | 15:04 | |
we need to suppress that prologue in each .pir that gets output | |||
that could perhaps be done as a later optimization | |||
jnthn: I'm actually thinking 'method by method' more than 'class by class' :-)( | |||
but yes, migrate things over as convenient | 15:05 | ||
jnthn | pmichaud: OK. | ||
pmichaud | we can do simple methods to begin with | ||
jnthn | Sure. | ||
pmichaud | then we need to fix up the 'is export' traits | ||
jnthn | Aye. | 15:06 | |
masak | is there a day set for the next Rakudo release? | ||
pmichaud | masak: not yet. | ||
masak: I'm going to tentatively set next Wednesday for this one. | |||
Matt-W | Is this the start of a Perl 6 prelude? | ||
pmichaud | Matt-W: yes, but it's now called "setting" instead of "prelude". | 15:07 | |
masak | I'm asking because we cannot switch proto to the next Parrot before Rakudo is released. | ||
pmichaud | masak: I'd do it sooner, but I'm leaving out of town Fri-Mon | ||
Matt-W | pmichaud: Excellent | ||
masak | pmichaud: next Wed is ok. | ||
pmichaud | so I don't know how much rakudo stuff I'll get done while on the trip. | ||
masak: and we still have a fair number of build and other not-very-interesting things that need to get resolved. | |||
masak | aye. | 15:08 | |
jnthn | While we're on away-ness, I've got some holiday in first week of March. | ||
And Perl conferences on the surrounding weekends. | |||
15:08
WootKit joined
|
|||
pmichaud | jnthn: okay. Shouldn't be a huge issue. | 15:08 | |
jnthn | pmichaud: OK, so I agree with the prelude approach. | ||
erm | |||
setting approach | 15:09 | ||
pmichaud | :-) | ||
jnthn: shall I set up the initial dirs and build, or do you wish to do it? | |||
Matt-W | Is there a reason for calling it the setting? | ||
jnthn | pmichaud: I don't mind either way. :-) | ||
pmichaud | Matt-W: because that's what the spec says? ;-) | ||
jnthn: I'll let you do this one, if you don't mind. | |||
jnthn | pmichaud: Depends if you trust me, to do it in a way you'll like. ;-) | ||
Matt-W | It does? Then why was everyone calling it the prelude! It's a conspiracy to confuse me, isn't it? | ||
pmichaud | Matt-W: the switch from "prelude" to "setting" was recent. | 15:10 | |
jnthn | Matt-W: It was a recent change. | ||
Matt-W: Thus why I keep getting it wrong. | |||
Matt-W | :) | ||
pmichaud | TimToady wants the word to more rightly indicate "thing that sets up the environment in which we work" as opposed to "thing that is done before anything else" | ||
Matt-W | That makes sense | ||
I look forward to seeing it take shame | |||
err | 15:11 | ||
shape | |||
no shame, hopefully | |||
pmichaud | it may take shame, too :-) | ||
jnthn | ...yes, hopefully... | ||
15:11
WootKit left
|
|||
Matt-W | Maybe I'll send patches :) | 15:11 | |
pmichaud | jnthn: I trust you to get something working -- I can refactor if I need to. I'd like to get some messages out and play with some other build system issues. | ||
and maybe I can work on getting the progress graphs going again. | 15:12 | ||
jnthn | pmichaud: OK, I'll dig in. :-) | 15:13 | |
pmichaud | I'm looking for some good initial methods to try. | ||
oh, I also wanted to switch q:PIR to Q:PIR | |||
hm. | |||
15:13
Southen_ left
15:14
WootKit joined,
WootKit left
|
|||
Matt-W | pmichaud: something like Array.elems? | 15:15 | |
pmichaud | except there isn't an Array.elems | ||
it's Object.elems | |||
or List.elems | |||
15:15
WootKit joined
|
|||
masak | Any.elems? | 15:15 | |
jnthn | pmichaud: Well, it doesn't have to be a class one. | 15:16 | |
15:16
WootKit left
|
|||
pmichaud | jnthn: hmmm? | 15:16 | |
jnthn | sub prompt is quite easy ;-) | ||
pmichaud | sub prompt? | ||
Matt-W | oh yes, I guess elems is just a stub in the Array role. stupid me. More coffee. | ||
jnthn | my $name = prompt("Name: "); | ||
pmichaud | does that belong to a package, at least? | 15:17 | |
jnthn | AFAIK, no. | ||
pmichaud | I thought nearly all of the builtins at least belonged to a package. | ||
jnthn | Unless spec changed since... | ||
Well, it's possible it *should*. :-) | |||
pmichaud | and then were exported to the setting | ||
jnthn | .namespace ['List'] | 15:18 | |
.sub 'list' :method .return (self) | |||
.end | |||
Well, can do that one. ;-) | |||
Thing is though | |||
That can be ordering issues. | 15:19 | ||
But hopefully nothing too serious... | |||
pmichaud | ordering issues? | ||
jnthn | The first entries in BUILTINS_PIR matter. | 15:20 | |
In their ordering. | |||
pmichaud | they matter because of the class construction | ||
not because of the methods they define | |||
i.e., it's the loadinit stuff that matters. | |||
jnthn | Yes, true. | ||
pmichaud | I'm not saying we'll eliminate classes/*.pir yet -- we can just move methods out of them | ||
that's why 'is also' | 15:21 | ||
jnthn | Sure. | ||
Matt-W | somewhere, something has to be implemented in PIR... | ||
jnthn | Though for List and Hash we'll need to in the not too distant future have them entirley defined in Perl. | ||
pmichaud | jnthn: why is that? | ||
jnthn | Because they shoudl be parametric roles. | ||
And I epicly do *not* want to hand-role those in PIR. ;-) | 15:22 | ||
masak | "hand-role". nice eggcorn. | ||
Matt-W | that would be unpleasant | ||
pmichaud | okay, we'll cross that when we come to it then. | 15:23 | |
jnthn | OK | ||
Oh | |||
A lot of the .perl methods | |||
Would be rather easy candidates. | |||
pmichaud | yes. | ||
jnthn | For things to convert first as test cases. | ||
pmichaud | I like that. | ||
and they don't export, which is helpful. | |||
jnthn | Aye. | 15:24 | |
pmichaud considers unsubscribing from parrot-commits list. | 15:25 | ||
jnthn wonders if we support POD parsing at all in Rakudo yet. | 15:26 | ||
masak | jnthn: POD or Pod? | 15:28 | |
moritz_ | jnthn: I think it's ignored - that's all | ||
pmichaud | it's just treated as a comment at present. | ||
masak | if the latter, then yes; what moritz_ said. | 15:29 | |
pmichaud | i.e., as whitespaces. | ||
jnthn | pmichaud: Ah, that's fine. | 15:31 | |
That means we can comment the prelude methods. :-) | |||
pmichaud | yes, just like any other perl 6 code :-) | ||
masak | "setting" :) | ||
moritz_ | without it, the test suite wouldn't suitable for rakudo :) | ||
Matt-W | and then one day, autogenerate a setting reference :) | ||
jnthn wonders how long it'll take him to get the name right | 15:32 | ||
pmichaud | jnthn: my experience tells me that as soon as you start getting it right, the name changes. | ||
masak | :) | 15:33 | |
15:33
justatheory joined
|
|||
masak | so whatevery you do, don't start getting it right. | 15:33 | |
jnthn | pmichaud: Either the name, the syntax or the semantics. ;-) | 15:34 | |
wknight8111 | question about exceptions: Is the only way to throw an exception with "die" or "fail"? | ||
moritz_ | wknight8111: no, warn() also throws exceptions | ||
wknight8111: and other builtins throw contol exceptions | 15:35 | ||
pmichaud | wknight8111: there's also been speculation of .throw | ||
moritz_ | rakudo: 1/0 | ||
p6eval | rakudo 876c09: OUTPUTĀ«Divide by zeroā¤current instr.: 'infix:/' pc 21658 (src/builtins/op.pir:194)ā¤Ā» | ||
moritz_ | that's also an exception ;-) | ||
wknight8111 | okay, so die, warn, and fail allow the user to manually throw exceptions? | ||
moritz_ | yes | ||
jnthn | git add is what you use to put new files under version control? | 15:48 | |
moritz_ | yes | ||
PerlJam | yes and no. | 15:49 | |
moritz_ | it is also used for other stuff | ||
PerlJam | right | ||
masak | it's used to put new content under version control. | 15:50 | |
or halfway, rather. | |||
PerlJam | It's used to tell git about content changes you intend to commit. | 15:51 | |
masak | right. | 15:52 | |
moritz_ | rakudo: sub _($x) { say $x }; _ 3; | ||
p6eval | rakudo 876c09: OUTPUTĀ«3ā¤Ā» | ||
masak | rakudo: eval 'eval "say ~<OH HAI>"' | 15:54 | |
p6eval | rakudo 876c09: OUTPUTĀ«OH HAIā¤Ā» | ||
moritz_ | rakudo: sub _($x) { say $x }; _ _ 3; | 15:55 | |
p6eval | rakudo 876c09: OUTPUTĀ«3ā¤1ā¤Ā» | ||
masak | rakudo: sub O { 3 }; sub o_ { say $^something }; o_ O | 15:57 | |
p6eval | rakudo 876c09: OUTPUTĀ«3ā¤Ā» | ||
15:57
iblechbot left
|
|||
jnthn | rakudo: class Any is also { method oO($x) { say $x } }; .oO("WTF?!") | 16:00 | |
p6eval | rakudo 876c09: OUTPUTĀ«sh: ./parrot: No such file or directoryā¤Ā» | ||
16:00
eternaleye left
|
|||
jnthn | Fail! | 16:00 | |
moritz_ | it's rebuild time again | ||
pmichaud | can't do rakudobugs at the top of the hour. :-) | ||
jnthn | It's our natural masak-bug-rate-limiter. ;-) | ||
moritz_ | lol | 16:01 | |
moritz_ has to wander off | |||
masak | fools! | ||
nothing can stop me. | |||
except perhaps trying to learn Chinese. that has a detrimental effect on my bug reporting, it seems. | 16:02 | ||
jnthn | rakudo: class Any is also { method oO($x) { say $x } }; .oO("WTF?!") | ||
p6eval | rakudo 876c09: OUTPUTĀ«sh: ./parrot: No such file or directoryā¤Ā» | ||
jnthn | Aww... | ||
masak | patience... :) | ||
jnthn can't even test it in his local, temporarily busted, Rakudo. | 16:03 | ||
masak tests | |||
jnthn | pmichaud: I found a slight...kink. The prelude ends up with a :main sub in it! | ||
pmichaud | jnthn: yes, see my note earlier. | ||
masak | jnthn: iz works. | ||
jnthn | masak: AWESOME! | ||
pmichaud | 15:04 <pmichaud> (separate compile) -- right now, every compilation to pir generates a prologue to automatically load perl6.pbc | ||
15:04 <pmichaud> we need to suppress that prologue in each .pir that gets output | |||
jnthn | use Acme::Thought; | ||
masak | aye, now we can think WTF in native Perl 6 :) | ||
jnthn | pmichaud: Ah, yes. | ||
pmichaud: Do you think post-process the file to remove it, or a compiler flag? | 16:04 | ||
pmichaud | is the :main interfering? | ||
it shouldn't be. | |||
jnthn | It is. | ||
pmichaud | then re-order it. | ||
so it doesn't. :-) | |||
jnthn | Erm. | ||
If I do that, then we don't compreg Perl6 early enough and it exploded due to that. | 16:05 | ||
Eh, I can do something more subtle. | |||
maybe | |||
pmichaud | I don't mind if we have a compiler flag or something to suppress it. | ||
or a pragma. | |||
heh. | 16:06 | ||
no Main; | |||
jnthn | :-D | ||
We don't parse "no" yet. ;-) | |||
pmichaud | you mean I can't get "no satisfaction"? | ||
PerlJam | And you can't have "no tea" either. | ||
jnthn | Why would I want no tea? | ||
How woudl I work then? | |||
masak | jnthn: it doesn't matter. you can't have it. | 16:07 | |
pmichaud | I think I prefer a pragma at some point. If we need to parse 'no', then we can start doing that. | 16:08 | |
masak | you can have jam yesterday and jam tomorrow, but not jam today. | ||
pmichaud | compiler option sounds a bit more involved (and probably not the way we want to go) | 16:09 | |
jnthn | True. | ||
16:09
nihiliad joined
|
|||
jnthn | OK, I'll parse no | 16:09 | |
pmichaud | I'm fine with post-process the file if you wish. | ||
jnthn | That felt evil. | ||
But quick. | |||
pmichaud | agreed. | ||
jnthn | OK, I'll do that... | ||
pmichaud | parsing 'no' doesn't seem like too much difficulty, though. | 16:10 | |
jnthn | Hmm, true. | ||
pmichaud | it's basically the same parse as 'use', iiuc. | ||
jnthn | It's a statement_control | ||
But yes, easy | |||
OK, will do it. | |||
jnthn looks forward to protoregexes, so he can lazily copy-paste from STD.pm | |||
pmichaud wonders if we should have a 'lo Mein' to go along with 'no Main' | |||
masak groans | 16:12 | ||
16:15
alester joined
16:18
ktne joined
|
|||
ktne | hello | 16:18 | |
is there any spec for perl 6? | |||
masak | ktne: greetings. | 16:19 | |
ktne: yes. | |||
perlcabal.org/syn/ | |||
ktne | hi masak | ||
jnthn | OK, "no Main" is in and it seems that...it works. :-O | ||
masak | incredible! | ||
ktne | masak: thanks | ||
masak | ktne: let us know if you have any questions. | ||
ktne | masak: ok | 16:20 | |
a lot of TBDs :) | |||
masak | ktne: well, we're not done yet. :) | ||
ktne | ok | ||
cya | |||
16:20
ktne left
|
|||
jnthn smokes | 16:23 | ||
jnthn pushes it | 16:37 | ||
I *really* hope I didn't screw this commit up... | |||
dalek | kudo: 9c86a27 | jnthn++ | (4 files): Break compile into two stages, the first compiling everything we did before, the second using that first stage to compile the Perl 6 setting and then making the final perl6.pbc. Also adds support for 'no Main' to suppress generating the Parrot :main method. Re-wrote Whatever's perl and ACCEPTS methods into Perl 6 as proof of concept. |
||
kudo: 325cc2e | jnthn++ | (8 files): Break compile into two stages, the first compiling everything we did before, the second using that first stage to compile the Perl 6 setting and then making the final perl6.pbc. Also adds support for 'no Main' to suppress generating the Parrot :main method. Re-wrote Whatever's perl and ACCEPTS methods into Perl 6 as proof of concept. |
|||
jnthn | Wow, I sorta maybe did... | ||
:-) | |||
Well, it went in two bits. | |||
pmichaud reviews. | 16:38 | ||
jnthn | Somebody git pull that, make realclean, perl Configure.pl, make. | ||
pmichaud: Feedback most welcome, I expect there will be bits to refine. | |||
But it should _work_. | |||
masak | jnthn: sounds very exciting. I'm heading home now, but will download a copy and try it out. | 16:40 | |
16:40
masak left
|
|||
pmichaud | can we avoid having the separate perl6_s1.pir and perl6.pir ? | 16:40 | |
jnthn | They're pretty minimal (just an include list) | 16:41 | |
So we don't duplicate code. | |||
It's factoered out into src/cli.pir | |||
pmichaud | I'd like even less duplication :-) | ||
could perl6.pir be run with an empty gen_setting.pir for the stage1 compile? | |||
that seems.... easier. | |||
jnthn | Hmm. | 16:42 | |
Maybe. | |||
pmichaud | i.e., when building stage one, just create an empty gen_setting.pir | ||
jnthn | We'd have to be very careful to have a makefie dependency correct to make sure it did get emptied. | ||
pmichaud | (fwiw, PGE uses the same trick for its self-compiled builtins) | ||
just force it empty prior to building any stage_1 compile | |||
jnthn | True. | ||
pmichaud | in particular, don't have a stage 1 target | 16:43 | |
although... hmm | |||
I see the value in having a stage 1 target in terms of reducing overall compile time. | |||
jnthn | Yeah | ||
Plus it means you *can* build the first stage to play with. | |||
If you want to know what it supports. | |||
Which I can see being useful for a while. | |||
Oh, maybe not. | 16:44 | ||
Hmm. :-) | |||
We could still do the stage 1 target and -o to somewhere else from the same perl6.pir I guess. | |||
pmichaud | right. | 16:45 | |
16:45
PantheraPardus left
|
|||
pmichaud | oh! HLLCompiler has a --combine option that allows multiple source files to be automatically concatenated as a compilation unit. | 16:46 | |
so we don't really need the separate gen_setting_pm step :-) | 16:47 | ||
jnthn | Oh. | ||
pmichaud | we can leave it for now, though. | ||
it's consistent with the pir generation. | 16:48 | ||
jnthn | OK | ||
Aye. | |||
May leave that for your tweaking if you feel like it. | |||
pmichaud | reviewing this on github is _sooooo_ much nicer than svn. | ||
alester | pmichaud: I am falling in love w/github | 16:49 | |
now I see how it works. | |||
Do we need a Rakudo-specific mailing list? | |||
I kinda feel like we do. | |||
that would be separate from all Parrot things | |||
pmichaud | I prefer that we stay on perl6-compiler | ||
perl6-compiler doesn't have so much traffic that rakudo-specific stuff would get in the way. | 16:50 | ||
jnthn | same. | ||
pmichaud | and perl6-compiler is already separate from Parrot things. | ||
jnthn | perl6-compiler is separate from Parrot. | ||
alester | ok | ||
We need to get Jeremy on there then | |||
because he's doing rakudo.org stuff | |||
Y'know, I don't think I'm on there. | 16:51 | ||
pmichaud | a lot of people have never grokked the difference between perl6-compiler (Rakudo, other compiler implementations) and perl6-internals (obsolete, used to be Parrot development) | ||
alester | where's the list? does it have a page? | ||
I'll add it to the rakudo docs | |||
pmichaud | alester: dev.perl.org/perl6/lists/ | ||
alester | yeah, that's not its own list though. | 16:52 | |
but it's a start | |||
pmichaud | I don't understand "its own list". You mean a separate list for Rakudo? | ||
alester | no | ||
sorry | |||
I mean its own page | |||
I think we need to get entirely divorced from Parrot | 16:53 | ||
in the minds of users of Rakduo | |||
ok, added to dru.rakudo.org/community | |||
pmichaud | I don't think we can. | ||
nor am I sure that we should. | |||
jnthn | Will | ||
echo # > src/gen_setting.pir | |||
Work on nonWindows? | |||
pmichaud | jnthn: just a sec | ||
jnthn | echo > src/gen_setting.pir won't fly on Windows | ||
pmichaud | $(PERL) -e "" >PGE/builtins_gen.pir | 16:54 | |
jnthn | Oh | ||
win | |||
pmichaud | afaik, there's nothing that currently ties Rakudo to Parrot | ||
in terms of documentation or location of resources | |||
alester | I know, just mindshare. | ||
16:54
PantheraPardus joined
|
|||
[particle] | nope, just the output of the compiler :) | 16:54 | |
jnthn | ;-) | 16:55 | |
alester | Someone who wants to use Rakudo need not care about Parrot | ||
Perl 5 info page doesn't say "Here are some C mailing lists" | |||
pmichaud | Perl 6 info page doesn't say "Here are some Parrot mailing lists", except for the obsolete one. | ||
as soon as I learn to use combust I can probably fix the Perl 6 pages. | 16:56 | ||
(the ones on dev.perl.org) | |||
alester | Or we just get off dev.perl.org entirely. | ||
You will never learn combust. | |||
pmichaud | who is "we" in this case? | ||
alester | It is pain. | ||
!/$ for learning combust is tiny. | |||
!/$ = "bang for the buck" | 16:57 | ||
pmichaud | I just need to learn enough to get updates to the website | ||
I'm not planning to rebuild/redesign that entire site. Just remove the obsolete/incorrect items. | 16:58 | ||
alester | ok, meeting time. | ||
pmichaud: "learn enough" is a huge pain. | |||
16:58
alester is now known as AndyAway
|
|||
pmichaud | jnthn: EPIC FAIL | 16:59 | |
spaces instead of tabs on Makefile:181 | |||
also 212 | |||
jnthn | pmichaud: Damm! And my make tool doesn't care about them... | 17:00 | |
17:00
AndyAway is now known as alester
|
|||
alester | oops | 17:00 | |
Meeting is later | |||
pmichaud | I'll let you fix, also rework the .pm generation | ||
let me know when you want me to git pull and test again | 17:01 | ||
jnthn | pmichaud: Already comitted re-working of that. | ||
And just pushed what I hope fixes those whitespace issues. | |||
pmichaud: Yup. pull now | 17:02 | ||
pmichaud | okay, building now. | ||
jnthn crosses his fingers | 17:03 | ||
pmichaud | also, I could use some testing. I expecting that the standard build sequence for most people will be | ||
1. git clone <rakudo> | |||
2. cd rakudo; | |||
[particle] can test rakudo builds today | 17:04 | ||
dalek | kudo: 459a7c8 | jnthn++ | (2 files): Re-work things a bit so we just have one perl6.pir, as suggested by pmichaud++. |
||
kudo: 8fef096 | jnthn++ | build/Makefile.in: Replace spaces in makefile with tabs. |
|||
pmichaud | 3. perl Configure.pl --gen-parrot | ||
4. make | |||
alester | Is it common that one patch will be red, and when you apply all the green ones, the red one goes green? | ||
pmichaud | where "--gen-parrot" downloads and builds an appropriate copy of parrot as needed. | ||
alester | pmichaud: We need something to say "force a new parrot build" | 17:05 | |
unless I missed something. | |||
pmichaud | I don't think we need "force a new parrot build" | ||
the --gen-parrot option keeps that for you. | |||
Rakudo no longer tracks parrot 'head' development. | 17:06 | ||
[particle] | (9:05:42 AM) cxreg: particle: did someone rebase rakudo? I'm getting fetch errors | ||
(9:05:50 AM) cxreg: error: Unable to find ab7e710796475e5b4af9f2d68c4af47963bec490 under git.rakudoperl.org/rakudo/rakudo.git | |||
jnthn | [particle]: What's he typing to get them? | 17:07 | |
git pull? | |||
[particle] | i just tried git pull, got same | ||
jnthn | BUT GIT IS THE AWESOME. *sigh* | ||
alester | pmichaud: oh? Oh, we only build a given revision? | ||
pmichaud | alester: if using --gen-parrot, yes. | ||
alester | I see | 17:08 | |
pmichaud | build/PARROT_REVISION keeps track of the revision wanted. | ||
--gen-parrot checks and rebuilds parrot against PARROT_REVISION | |||
the purpose is to remove parrot management from the standard rakudo builder/user. | |||
17:09
cxreg joined
|
|||
[particle] | yep, http:// is busted with git clone, too | 17:10 | |
git clone git://github.com/rakudo/rakudo.git rakudo # works | 17:11 | ||
jnthn | [particle]: Ah, I hadn't been using the http:// | ||
cxreg | everyone should git config remote.origin.url git://github.com/rakudo/rakudo.git | ||
pmichaud | cxreg: what does that do, exactly? | 17:12 | |
[particle] | if users are allowed/recommended to use , we need to get it working | ||
pmichaud | I'm always wary of "everyone should..." sorts of statements. | ||
[particle]: or we just use the git:// address. | |||
[particle] | pmichaud: it sets the config item for the rakudo remote origin url to git://... | ||
cxreg | pmichaud: updates the config for "origin". if you're wary, git config remote.origin.url to see what's there now. | ||
[particle] | in the .gitconfig file | ||
pmichaud | I don't understand "updates the config for origin". Is that a global setting? | 17:13 | |
[particle] | no, it's in the project config | ||
cxreg | pmichaud: in your local checkout, it sets the url for the upstream repo | ||
[particle] | you'd need to specify --global for global | ||
pmichaud | what about those of us who need to use the git@github... address? | ||
[particle] | or --system (i get confused as to which is which) | ||
...that is, committers. | 17:14 | ||
cxreg | global is ~, system is /etc | ||
pmichaud | pmichaud@orange:~/rakudo$ git config remote.origin.url | 17:15 | |
[email@hidden.address] | |||
is that not correct? | |||
(I did not do any sort of special git config setting, afaik) | |||
cxreg | pmichaud: it's failing over ssh? that's surprising :/ | 17:16 | |
pmichaud | note that nothing is failing for me at the moment. | ||
you said "everyone should ..." and I'm trying to decide if I'm part of 'everyone'. | |||
cxreg | pmichaud: no, you're right, that's read-only | 17:17 | |
easily repaired though :) | |||
pmichaud | ...what's 'read-only'? | ||
cxreg | a git:// url | ||
pmichaud | okay, so git:// urls are read-only, [email@hidden.address] is for committers, yes? | 17:18 | |
cxreg | right | ||
pmichaud | who needs to be doing the 'git config' step, then? | ||
people who got a copy via http:// ? | |||
or ... ? | |||
cxreg | yes, that's what #git recommended, and it fixed it for me | ||
but as for ssh, I've got no idea | 17:19 | ||
pmichaud | anyway, I suggest that we use git://github.com/rakudo/rakudo.git as the canonical location for people wanting to download rakudo, and not the http:// address. | ||
but I'm still learning about git. | 17:20 | ||
cxreg | are any of you guys over in that channel? they're asking for specifics but I don't have access to the ssh repo | ||
pmichaud | I can join -- on freenode? | ||
cxreg | yeha | ||
pmichaud | joined. | ||
if someone asks a question I can try to answer :-) | 17:21 | ||
cxreg | oh. well shucks. I thought you'd said you still had problems and here I was trying to solve them. | ||
jnthn | rakudo: say True; | 17:22 | |
p6eval | rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
cxreg | http:// -> git:// resolved my issue, and if ssh has no issue, then i think your suggestion is sufficient. | ||
pmichaud | cxreg: particle might've had some problems. I was just trying to get clarity on who should or shouldn't be doing the git config step. | 17:23 | |
cxreg | ok, he's also talking about http there, so I think we're on the same page. http-- | 17:24 | |
17:28
maerzhase left,
pmurias joined
|
|||
pmurias | ruoso: grey node in bootstrap.dot mean ones which are meant to be define in Perl 6 not in C right? | 17:31 | |
lambdabot | pmurias: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
pmichaud | for those following along, apparently the answer is that http:// support is b0rken on github right now. | ||
ruoso | pmurias, I was actually thinking about it | 17:33 | |
pmurias | ruoso: hi | ||
ruoso | hi pmurias | ||
17:33
kst joined
|
|||
pmurias | as it makes no sense to have return defined in C | 17:34 | |
ruoso | pmurias, indeed.. | ||
but the failures do make sense | |||
maybe 'gray' simply means 'it needs to be implemented in "whatever"' | 17:35 | ||
pmurias | makes sense | ||
jnthn | pmichaud: Erm. Ouch. | 17:36 | |
ruoso | it's interesting how the dot file shows the number of dependencies that a code as simple as Multi generates | ||
jnthn | pmichaud: Seems we're getting block name conflicts perhaps... | 17:37 | |
pmichaud | jnthn: that doesn't make much sense to me, though. | ||
jnthn | oh, maybe not...hmm | ||
pmichaud | any blocks that are being generated should be in a different namespace. | 17:38 | |
ruoso | pmurias, I think we could take the code of smop/src-s1p/Return.pm and simplify it as binding the sub directly in the lexical prelude instead of using "is export" | ||
then we consider that code as "simplified Perl 6 (which means that it should be black, not blue) | |||
jnthn | Aye | ||
17:39
ejs joined
|
|||
pmurias | ruoso: is return a multi? | 17:40 | |
ruoso | I don't think so | ||
pugs_svn | r25388 | ruoso++ | [mildew] make a simplified "&return" in the mildew prelude | 17:41 | |
17:43
riffraff left
|
|||
jnthn | pmichaud: For some reason as soon as I had a class Bool is also { }, then "say True" starts giving errors. | 17:44 | |
Like this: | |||
pugs_svn | r25389 | ruoso++ | [mildew] update dot according to simplified &return | ||
jnthn | too few arguments passed (0) - 2 params expected | ||
current instr.: 'parrot;Whatever;ACCEPTS' pc 22950 (src/gen_setting.pir:82) | |||
Which is...rather odd. | |||
pmichaud | wasn't Bool defined as an enum? | 17:45 | |
and automatically generated that way? | |||
17:45
nihiliad left
|
|||
pmichaud | or did that get backed out? | 17:45 | |
or superceded? | |||
jnthn | Bool.pir looks to do it as a class | ||
oh but then enums.pir does...something else! | |||
Oh | |||
Hmm | |||
17:46
nihiliad joined
|
|||
jnthn | pmichaud: Yeah, I think what's in Bool.pir isn't what actually sets up Bool::True and Bool::False. | 17:46 | |
OK, my bad. | |||
pmichaud | I know you had reworked Bool at one point, and I never caught up on it to see what was happening. | ||
jnthn | But I got two small code-gen improvements anyway... | 17:47 | |
Well, I think finally now the spec is nailed down on it a bit more. | |||
pmichaud | yes. | ||
jnthn | It's not quite an enum, it's kinda role-ish, IIRC. | ||
pmichaud | and if you can rewrite Bool as p6-setting code, that would be tres cool. | ||
er, Ā«tres coolĀ» | |||
jnthn | ;-) | ||
I could try that. | 17:48 | ||
pmichaud | might have some issues with exporting values. | ||
jnthn | I'll attack a few easier things first. | ||
pmichaud | that's a good plan. | ||
jnthn | For things like List and so on. | 17:49 | |
At the moment we subclass ResizablePMCArray. | |||
pmichaud | do we have 'is export' doing anything useful on methods? | ||
jnthn | But I'm not sure that's going to fly if it'll become a role. | 17:50 | |
pmichaud | I'm not eager to do a major List refactor right now, fwiw. | ||
jnthn | We might need to create proto-objects for some Parrot types like ResizablePMCArray. | ||
17:50
iblechbot joined
|
|||
jnthn | In a namespace like Parrot::ResizablePMCArray or something | 17:50 | |
pmichaud | I don't have a problem with doing that. | ||
pugs_svn | r25390 | pmurias++ | [mildew] removed is export from &return as we store it in the lexical prelude directly | ||
jnthn | So we can use them as an attribute. | ||
I don't plan to do this today. | 17:51 | ||
pmichaud | is there a big dependency on a List refactor? | ||
jnthn | But OTOH I do need to get typed arrays and hashes done to finish my grant. ;-) | ||
17:51
nihiliad left
|
|||
pmichaud | ah, grant. | 17:51 | |
jnthn | Aye. | ||
nopaste? | |||
heh | 17:52 | ||
pmichaud wonders if Rakudo should have a 'no paste;' :-) | |||
jnthn | OK, but AFAIK (though I need to review) my remaining grant tasks are: | ||
* Detection at compile-time of re-declaration of subs and giving of errors in such situations. | |||
* Detection of "only" conflicting with "multi" and reporting of such errors. | |||
* Test cases for writing a different dispatcher in a meta-class, to check that we've done it right (note that this means implementing knowhow, which isn't really part of this grant, but I do hope to have done this by January). | |||
17:52
nihiliad joined
|
|||
jnthn | * Typed arrays and hashes implemented using parametric roles, usable and working. | 17:52 | |
* Declaring an "of" type for subroutines. | |||
ruoso | pmurias, hmm.. mildew is broken... | ||
jnthn | * handles with s/a/b/ and on a method | ||
Erm, actually that test case for different dispatchers wasn't part of my grant proper. | |||
ruoso | pmurias, it fails compiling prelude/Return.pm | ||
jnthn | It was kinda wishlist, for testing dispathcer. | ||
But the *big* item in there is typed arrays and hashes. | 17:53 | ||
(And subs...) | |||
ruoso | TimToady, "Undeclared name: CALLER:: used at 4" seems like a wrongish warning... | ||
pmichaud | jnthn: can I suggest a branch, then? | ||
I just know how hard it has been to get hashes and lists working in the current version; and while you're finishing up your grant, I've yet to substantially start mine. | 17:54 | ||
ruoso | std: &infix:<==>(int,int)(1,1) | 17:55 | |
p6eval | std 25390: OUTPUTĀ«############# PARSE FAILED #############ā¤Unable to parse argument list; couldn't find final ')' at /tmp/hmqVADv1ex line 1:ā¤------> &infix:<==>(int,int)(1,1)ā¤ expecting any of:ā¤ nameā¤ nounā¤ prefix or meta-prefixā¤ prefix_postfix_meta_operatorā¤ | ||
..termā¤ whitespaceā¤FAIL... | |||
ruoso | hmm | ||
17:55
Tene_ joined
|
|||
pmichaud | (because I've been sidetracked doing things like lexicals and parameter refactors and build system refactors and ... ) | 17:55 | |
ruoso | wasn't that supposed to be valid? | ||
std: &infix:<==>(int,int).(1,1) | |||
p6eval | std 25390: OUTPUTĀ«############# PARSE FAILED #############ā¤Unable to parse argument list; couldn't find final ')' at /tmp/AeVDZvY2TT line 1:ā¤------> &infix:<==>(int,int).(1,1)ā¤ expecting any of:ā¤ nameā¤ nounā¤ prefix or meta-prefixā¤ prefix_postfix_meta_operatorā¤ | ||
..termā¤ whitespaceā¤FAI... | |||
17:56
nihiliad left
|
|||
pmurias | ruoso: re prelude/Return.pm i'll look into it | 17:56 | |
jnthn | pmichaud: Yes, if I can work out how to do branches in git. ;-) | 17:57 | |
pmichaud | it's pretty straightforward, from what I've read. | ||
jnthn | pmichaud: Well, the part of your grant on the Perl 6 prelude got a step closer today. :-) | ||
pmichaud | indeed, so I can say that got started. :-) | ||
and much of those other items were pre-reqs to my grant. | |||
like the parameter refactoring | |||
jnthn | OK, what do: | 17:58 | |
=item perl() | |||
Returns a Perl representation of a List. | |||
=cut | |||
Become in Perl 6 POD? | |||
jnthn has not studied it at all... | |||
pmichaud | jnthn: time to read S26, methinks. :-) | ||
jnthn | It tells me it's out of date. ;-) | ||
pmichaud | perlcabal.org/syn/S26.html | ||
Yes, it's out of date, but it's not _that_ out of date. | 17:59 | ||
I'll inquire about it at today's conference call, though. | |||
jnthn | looks like | 18:00 | |
pmichaud | and perhaps a brief note to Daiman for an update. | ||
jnthn | =begin item | ||
=end item | |||
pmurias | ruoso: you mean it emit code using postcircumfix:< >? | ||
* emits | |||
18:00
duke_leto joined,
duke_leto left
|
|||
ruoso | pmurias, hm? | 18:00 | |
pmurias | do you have an up to date STD | ||
and clean lex/ | 18:01 | ||
18:01
nihiliad joined
|
|||
pmurias | checking it for myself... | 18:01 | |
ruoso | pmurias, yes, I've just checked that | ||
TimToady | std: &infix:<==>:(int,int)(1,1) | ||
ruoso | TimToady, ah... that second : is new, isn't it? | 18:02 | |
p6eval | std 25390: OUTPUTĀ«Potential difficulties:ā¤ Variable &infix:<==>:(int,int) is not predeclared at /tmp/Q80Nxv5zIz line 1:ā¤------> &infix:<==>:(int,int)(1,1)ā¤ok 00:03 36mā¤Ā» | ||
pmurias | ruoso: how does it fail? | ||
pmichaud | jnthn: S26 also has =item | ||
TimToady | no, quite old | ||
but it must be there, or it's a sub call | |||
pugs_svn | r25391 | pmurias++ | [mildew] added missing files | ||
TimToady | with (int,int) as args | ||
ruoso | pmurias, Can't locate object method "emit_m0ld" via package "VAST::semiarglist" at src/VAST/args.pm line 9. | ||
pmurias | fixed | ||
jnthn | pmichaud: Yes, foudn that. | ||
pmichaud: Ah. | 18:03 | ||
Hmm | |||
It wasn't Bool specific. | |||
TimToady | bacek: [\!=] should return False as first result, not True | ||
jnthn | Oddness. As soon as I add another class to the setting... | ||
18:03
japhb left
|
|||
jnthn | It blows up. | 18:03 | |
The same way. | |||
ruoso | stf: say CALLER::<$foo> | ||
std: say CALLER::<$foo> | |||
jnthn | (too few arguments passed (0) - 2 params expected) | ||
p6eval | std 25390: OUTPUTĀ«Undeclared name:ā¤ CALLER:: used at 1 ā¤ok 00:02 33mā¤Ā» | ||
ruoso | TimToady, the above warning seems wrong | 18:04 | |
jnthn | pmichaud: Any program causes it. | ||
jnthn signs | |||
*sighs | |||
TimToady | ruoso: probably | ||
jnthn | pmichaud: OH! | ||
This looks...bad | |||
too few arguments passed (0) - 2 params expected | |||
current instr.: 'parrot;Whatever;ACCEPTS' pc 23207 (src/gen_setting.pir:181) | |||
called from Sub 'parrot;Perl6;Grammar;Actions;statement_block' pc 114836 (src/ge | |||
n_actions.pir:453) | |||
pmurias | ruoso: does it compile now? | 18:05 | |
18:05
maerzhase joined
|
|||
TimToady | ruoso: there's no code in STD to handle CALLER yet | 18:05 | |
ruoso | pmurias, yes... thanks | ||
jnthn | pmichaud: I fear it's subid related. Because we are .include'ing the setting and the actions.pm in one file, we get duplicated subids. | ||
pmichaud | jnthn: okay, that makes sense. | ||
ruoso | TimToady, ok... | ||
jnthn | It's calling directly from the actions to the prelude. :-) | 18:06 | |
Which are in differnt namespaces | |||
So it's about all I can think of. | |||
18:06
Tene left,
PantheraPardus left
|
|||
pmichaud | and yes, subids are per-compilation unit, so that makes very good sense. | 18:06 | |
pugs_svn | r25392 | pmurias++ | [mildew] my $foo = &infix:<+> works | ||
jnthn | Yes | ||
.sub "ACCEPTS" :subid("16") :method :outer("14") | 18:07 | ||
And | |||
pugs_svn | r25393 | ruoso++ | [mildew] fix the way the multi variant is called by name. | ||
r25393 | ruoso++ | [mildew] add the role package_declarator that looks for RoleHOW | |||
pmichaud | okay. I'm sure I can fix it -- I just need to think how I want to do that. | ||
jnthn | .sub "_block93" :anon :subid("16") :outer("15") | ||
Yes. | |||
Hmm. | |||
Aye...fixable, just how. :-) | |||
pmichaud | btw, it looks like my Thursday morning meeting is being cancelled/postponed, so I should be around all tomorrow too. | ||
jnthn | OK | 18:08 | |
pmichaud | I'm needing lunch here. | ||
jnthn | I may do some grant work tomorrow. | ||
Yeah, I could do with dinner actually. | |||
ruoso | pmurias, now mildew complains about '&infix:<==>:(int,int)($candidates.elems,0)' | 18:09 | |
pmichaud | I think subid prefixes might be the answer. | ||
or at least "an answer" | |||
18:09
iblechbot left
|
|||
pmichaud | or I could look at uuid generation again. | 18:09 | |
jnthn | pmichaud: I think they'd do us. | ||
ruoso | pmurias, ah... mildew still requires a '.' between the sub name and the '(' if you use the '&' | 18:10 | |
pmichaud | okay, lunch here. bbiaw | ||
pmurias | ruoso: ok i'll fix that | 18:11 | |
ruoso: &infix:<==>:(int,int) is treated as &infix:<==> atm | 18:13 | ||
ruoso | pmurias, the use of $LexicalPrelude in the end of Multi.pm and Return.pm is not needed... the symbols are already being declared there... | ||
mildew++ &return already works ;) | 18:15 | ||
pmurias | the LexicalPrelude is specified as the starting scope in the loader | ||
ruoso | hmm.. actually.. it didn't work... I haven't recompiled Return.mildew.so | 18:17 | |
18:18
schmalbe joined
|
|||
ruoso | it seems that the aliasing is still needed after all | 18:18 | |
hmm... it seems that capture dwimmery is not working as expected.. | 18:20 | ||
it is returning an array even if I only have a single parameter... | |||
pmurias | TimToady: shouldn't postcircumfix:sym<( )> be using semiargslist instead of semilist? | 18:24 | |
ruoso: aliasing? | |||
ruoso | pmurias, $LexicalPrelude.{'&return'} := &return; | 18:26 | |
18:28
wknight8111 left
18:31
Psyche^ joined
18:32
PantheraPardus joined
|
|||
pmurias | ruoso: found the bug | 18:36 | |
ruoso | pmurias, cool | ||
pmurias, squash it ;) | |||
pmurias | code emitted by mildew was not passing any arguments to return | ||
ruoso | hmm... | ||
I assume it is not passing to any function called without parenthesis | 18:37 | ||
pmurias | yes | 18:39 | |
ruoso | this is probably a regression from changes in STD... | ||
I think that had already worked before | |||
pugs_svn | r25394 | pmurias++ | [mildew] failing test for a sub call without parenthesis | 18:40 | |
18:43
Patterner left,
Psyche^ is now known as Patterner
18:50
timbunce joined
|
|||
pugs_svn | r25395 | pmurias++ | [mildew] sub calls without parenthesis work now | 18:59 | |
pmurias | ruoso: it was a STD regression | 19:00 | |
that is it was cause by STD changes | 19:01 | ||
bacek | good morning | ||
pmurias | ruoso: do you think the Prelude should be loaded by default now? | ||
bacek | TimToady: ([\!=]) False as first result or last? | 19:02 | |
19:03
alester left
|
|||
TimToady | first result is the identity value | 19:03 | |
which is False for != | 19:04 | ||
bacek | TimToady: but != right associative. | ||
TimToady | no it isn't | 19:05 | |
bacek | ah, ok. | ||
TimToady | != is abbrev for !== which is chain assoc | ||
bacek | so what "[\!=] 4,5,4" should produce? | 19:06 | |
and [\!=] 4,5,6? | |||
TimToady | they both produce False True True | ||
bacek | TimToady: thanks. | 19:07 | |
TimToady | and I do think stringifying enums should use True rather than 1 | 19:08 | |
bacek | 4,4,5 -> False, True, False? | ||
TimToady | only for == | ||
not for != | |||
jnthn | TimToady: Is that a design decison for enums generally? That they stringify to the name of the enum element? | 19:09 | |
erm, that elements stringify to... | |||
TimToady | I think + makes the number, ~ makes the short name, and .perl makes the qualified name | ||
if it's not a decision, it's close to it :) | |||
jnthn | What about .WHAT? | ||
TimToady | True.WHAT is a protoobject | 19:10 | |
which has its own rules for stringifying | |||
bacek | rakudo: say (True, False) ~~ (True, False); say (True, False) ~~ (False, True) | ||
p6eval | rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
TimToady | Bool() is the current spec for that | ||
jnthn | That is, the proto-object we'd get from taking the role generated by the enum declarator and punning it? | 19:11 | |
And the enum instances are basically instances of a class punned from that role? | |||
TimToady | I've always viewed enums as more like subset types | ||
jnthn | (where instances I mean, the thingies installed in the namespace for each value) | ||
Oh? | 19:12 | ||
Roles always made more sense to me. | |||
TimToady | in fact, I view all defined values as subset types | ||
sub foo (2,2) {...} | |||
jnthn | Given you can do things like $x but Some::EnumValue | ||
Or ust $x but EnumValue. | |||
19:13
PantheraPardus left
|
|||
TimToady | Bool is a role, sure | 19:13 | |
True is a value | |||
jnthn | I'm talking enums in generaly. | ||
*general | |||
OK, what I'm getting at is, what is the relationship between the value True and the role Bool? | |||
Or in general for an enum Foo<Bar Baz>, the relationship between Foo and Bar/Baz? | |||
TimToady | you could view values as singleton classes, I suppose | 19:14 | |
or as subsets of a single punned class that happen to be able to tell you their one value | 19:15 | ||
jnthn | I viewed them more as instances of a singleton class got from punning the role Foo... | ||
TimToady | I'm not so concered with what they are as I am with how you may use them :) | ||
jnthn | So enum Foo<Bar Baz> is like role Foo { has $.Foo }; Bar := Foo.new(:Foo(0)); Baz := Foo.new(:Foo(1)) | 19:16 | |
Or similar. | |||
OK, fair enough. :-) | 19:17 | ||
TimToady | arguably that's the same thing the Foo{:Foo(0)} or Foo(0) syntax does | ||
though perhaps not with the closure | |||
since that doesn't commit to class creation | 19:18 | ||
and indeed, it can, since it's just a list of role initializers that may not make sense without something else mixed in | |||
*can't | |||
but I do wonder how general the Foo(0) syntax is in "but Foo(0)" | 19:19 | ||
and whether it calls .new(0) assuming there's a positional variant | |||
or whether it assumes there's a coercion | 19:20 | ||
jnthn | I'd been doing introspection to see what the name of the one attribute tha the role introduced was, and then setting that. | ||
TimToady | and if coercions are always single arg, what about Array(0,1,2,3)? | ||
pugs_svn | r25396 | pmurias++ | [mildew] added a hackish one argument &say and &print to the Prelude | 19:21 | |
r25396 | pmurias++ | t/return_function.t uses the Prelude | |||
TimToady | okay for now, but just bear in mind we might generalize it | ||
19:21
pmurias left
|
|||
jnthn | OK | 19:21 | |
I don't think it'll be too painful a change. | |||
bacek | jnthn: can you put one line fix for grammar-oper.pg? | 19:22 | |
perl6: say 2**3**4 | |||
pugs_svn | r25397 | lwall++ | [STD] change postcircumfix:<( )> to use semiarglist as suggested by pmurias++ | ||
p6eval | elf 25395: OUTPUTĀ«2.41785163922926e+24ā¤Ā» | ||
..rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | |||
..pugs: OUTPUTĀ«2417851639229258349412352ā¤Ā» | |||
19:22
zamolxes joined
|
|||
bacek | jnthn: -proto infix:<**> is precedence('w=') { ... } | 19:22 | |
+proto infix:<**> is precedence('w=') is assoc('right') { ... } | |||
jnthn | Ah yes, STD.pm agress with you. :-) | 19:23 | |
bacek | and all other implementations too :) | 19:24 | |
pmichaud | bacek: what's the fix? | ||
oops, wrong scrollback. | |||
bacek | right assoc of ** | ||
pmichaud | looks like jnthn is working on it already :-) | ||
pmichaud 's karma isn't doing so well lately. :-| | 19:25 | ||
jnthn | pmichaud: I'll give you a ++ if you fix up the subid generator. ;-) | ||
pmichaud | jnthn: that's what I'm about to do now. | ||
jnthn | Yay! | ||
pmichaud++ | |||
pmichaud | building parrot trunk | 19:26 | |
jnthn | bacek: Will commit it shortly. :-) | 19:27 | |
bacek | jnthn: no worries. I already commited it into my repo :) | 19:28 | |
jnthn | bacek: Are there some spectest we can unfudge? | ||
bacek: Or if not would you be able to write one? | |||
bacek | jnthn: running spectest now to check | ||
jnthn | Me too, got a couple of small other (unrelated) tweaks to go in too. | 19:29 | |
19:30
smtms joined
19:32
nihiliad left
|
|||
pugs_svn | r25398 | bacek++ | [t/spec] Add test for ** right associative | 19:33 | |
bacek | jnthn: you probably have to fudge test in S03/reduce-metaop.t | ||
but it works in my version :) | 19:34 | ||
19:34
_timbunce joined
|
|||
jnthn | bacek: Ah. But surely that implies, that the test is wrong? | 19:35 | |
bacek | no, test is right | ||
[**] 2,3,4 == 2**3**4 | |||
jnthn | Ah. And we fail it after this patch because? | ||
bacek | yes | 19:36 | |
i've got version of metaops with support [\..] form and right assoc. | |||
pmichaud | we fail it because [**] is probably not honoring associativity. | ||
jnthn | Ah. | ||
Makes sense. | |||
OK, we can regress on that one for now. | |||
bacek: My point more though was that, now we have fixed this, we should have a test for the ** operator that now passes that would not have before I apply this patch. | 19:37 | ||
Where it got the wrong answer before and gets it right now. | |||
bacek | <pugs_svn> r25398 | bacek++ | [t/spec] Add test for ** right associative | 19:38 | |
perlbot | What kind of idiot karmas himself? Your kind of idiot! | ||
pmichaud | and !REDUCEMETAOP should probably have a :assoc option. | ||
19:38
nihiliad joined
|
|||
pmichaud | (unless we have a way to look it up directly) | 19:38 | |
jnthn | Not that I know of, unless there's some way to poke into the tokenizer and ask it. | 19:39 | |
pmichaud | oh, we could do that. | ||
jnthn | You'd know that more than I would. ;-) | ||
pmichaud | that's not that hard. | ||
jnthn | Sounds like a winner to me. | ||
Because then we handle user defined ops and their associativity. | |||
When we get those. | |||
pmichaud | Win! My regular Thursday morning meeting has been cancelled for this week. More hacking time for me! | 19:41 | |
jnthn | Yay! | ||
You can improves your karmas. ;-) | 19:42 | ||
bacek | nopaste? | ||
19:43
nihiliad left
19:45
ludan left
19:48
nihiliad joined
|
|||
bacek | pmichaud: jnthn nopaste.snit.ch/15665 is reduce with support [\..] and assoc. | 19:49 | |
pmichaud | bacek: I think I'm going to look up the associativity from the optable instead of putting it here. | ||
19:50
timbunce left
|
|||
bacek | pmichaud: I can't figure out how to do it... | 19:50 | |
parsing grammar-oper.pg? | |||
pmichaud | no, the information for the operator tokens is in the parser. | 19:51 | |
i.e., I'm going to have REDUCEMETAOP do the lookup. | |||
not the gen_* script. | |||
jnthn | bacek: Applied your ** patch. If you have a commit bit on the Pugs repo, could you un-fudge the ** associativity test, and fudge the failing metaop one? | ||
bacek | jnthn: I did't fudged '**' test. | 19:52 | |
dalek | kudo: 75ea93f | jnthn++ | src/parser/grammar-oper.pg: infix:<**> should be right associative; patch courtesy of bacek++. |
19:53 | |
kudo: a020241 | jnthn++ | src/parser/actions.pm: Some slight tweaks to code generation of is also classses and when no Main is in effect. |
|||
jnthn | bacek: Oh? I hadn't seen it failing before applying yoru patch though. Hmm... | ||
bacek | pmichaud: how it can be implemented? | ||
pmichaud | bacek: by doing a lookup on the OPTable object, which is just a hash. | ||
at least, I think it's a hash. | |||
anyway, looking up 'infix:**' in the OPTable object will get its traits, including associativity. | 19:54 | ||
(same for other operators, including user-defined ones when we get there.) | |||
bacek | pmichaud: ok, thanks. I can rework my patch. | ||
pmichaud | also, the triangle stuff looks like there's some code duplication present. | 19:55 | |
(which I'd prefer to avoid) | |||
bacek | PGE;OPTable or Perl6::Grammar::$optable? | ||
cxreg | does the stimulus package have a rakudo grant? :) | ||
pmichaud | Perl6::Grammar::$optable, probably. | ||
I tried to get one in there, but my representative and senators aren't very supportive of such things :-) | |||
(no, I didn't really try to get anything in the stimulus package) | 19:56 | ||
Let's just say that Texas is a very red state. And yes, we win big from the stimulus package, which seems like it should give us lots of negative karma. | 19:57 | ||
jnthn | texas-- | 19:59 | |
;-) | |||
karma texas | |||
meh. | |||
pmichaud | jnthn: testing unique subid patch now. | 20:00 | |
TimToady | phone | ||
pmichaud | danke | ||
bacek | pmichaud: I'll rework triangle handling and try to get metadata from optable. | 20:02 | |
20:02
schmalbe left
|
|||
bacek | $self ~~ $dayjob | 20:02 | |
jnthn | pmichaud: Great! | 20:03 | |
pmichaud | jnthn: r36866 | 20:05 | |
jnthn | pmichaud++ # works! | 20:09 | |
awesome I now haz | |||
method perl(@self:) { | |||
return '[' ~ @self.map({ .perl }).join(", ") ~ ']'; | |||
} | |||
For List | |||
That is...shorter than the PIR! | |||
20:11
rindolf left
|
|||
pmichaud | I think I would prefer $self, or even just use inherent 'self' | 20:13 | |
jnthn | Yeah, we could do that. | 20:15 | |
20:18
iblechbot joined
|
|||
jnthn converts several methods and does a make spectest | 20:20 | ||
Going to pop to the supermarket while it runs...back soon. | |||
20:23
_timbunce left
20:26
aindilis left
20:28
bacek left
|
|||
ascent_ | There was any benchmarks on Parrot/Perl6? | 20:31 | |
s/on/of/ | |||
20:34
zamolxes left
20:39
nihiliad left
20:48
nihiliad joined
|
|||
jnthn | ascent_: Not that I'm aware of. | 20:52 | |
ascent_ | jnthn: Perl6 can use external libraries in C? I think not? | 20:55 | |
allbery_b | it wil be able to, don't think it's been specced yet | ||
jnthn | It's not spec'd as such, I don't think, but for Rakudo somebody did already write an NCI module that would be able to do that. | 20:56 | |
ascent_ | I just hope that Parrot won't be another JVM ;) | 20:58 | |
jnthn | ascent_: For the NCI module, you did not have to write any C yourself to call C libraires. It's quite nice. :-) | ||
ascent_: It's just a thin layer itself over Parrot's own NCI support. | |||
pmichaud | jnthn: (perl 6 pod) consensus is to go with the current draft for now, trusting that we'll be able to easily adjust the pod later as needed | 20:59 | |
jnthn | pmichaud: OK, works for me. | ||
pmichaud | maybe someone can write a more detailed perl6pod parser :-) | ||
jnthn | pmichaud: Though I didn't work out how to make =item not parse fail yet.. | ||
So used =begin item ... =end item for now. | |||
But it's a trivial find/replace later. | |||
pmichaud | that's the easy approach for now. | ||
jnthn | Anyway, checked in a few more things moved over to Perl 6. | 21:00 | |
Added 60 lines, removed 350 ;-) | |||
pmichaud | nice. | ||
jnthn | Yeah. | ||
pmichaud | spectests pass? | ||
jnthn | Our codebase is going to *shrink*. | ||
Yes, of course! | |||
I'm relying on those to tell me I didn't screw it up... ;-) | 21:01 | ||
ascent_ | jnthn: Sounds great! =) | ||
pmichaud | well, at some point we'll want to look at the generated code to make sure we aren't doing lots of unwanted overhead, but that's optimization :-) | ||
jnthn | Sure. | ||
pmichaud | I'll work on 'is export' next, and then see if I can do some operator hacks for short-term stuff. | ||
dalek | kudo: 80fd5c5 | jnthn++ | (7 files): Move a few methods on List and Pair over to the Perl 6 setting. |
||
jnthn | Ah, yes, operators defined in prelude would indeed be cool. | 21:02 | |
pmichaud | even if we just drop into Q:PIR { ... }, it would be cool. We'd get our multis. | ||
21:02
hirschnase joined
|
|||
jnthn | Right. | 21:02 | |
I was going to ask about that. | |||
Because for say, Pair | 21:03 | ||
I've moved almsot every method | |||
But | |||
ruoso | how do you plan to get the values from the signature to inside the inner language? | ||
pmichaud | in 80fd5c5, I see that the methods were removed from src/classes/* but don't see the corresponding adds to src/setting/* | ||
perhaps missing a git add ...? | |||
jnthn | Huh? | ||
21:03
hirschnase left
|
|||
jnthn | create mode 100644 src/setting/List.pm | 21:03 | |
create mode 100644 src/setting/Pair.pm | |||
pmichaud | ruoso: we can look them up directly in PIR. | ||
jnthn | Is what it said in my commit. | ||
pmichaud | jnthn: oh, I see -- it's just not showing up in the diff. | 21:04 | |
(on github) | |||
jnthn | Oh? | ||
That's odd. | |||
ruoso | pmichaud, hmm... ok... does std knows how to tandle Q:FOO { } ? | ||
pmichaud | they're there, I just had to know where to look. | ||
jnthn | But if you pull do you have them? | ||
OK, phew. | |||
I thought I'd screwed up on git... | |||
ruoso | better put, how do I define a sub-language to be used with Q:FOO ? | ||
pmichaud | ruoso: I'm not worried about std being able to parse Q:FOO | ||
ruoso | pmichaud, I know... I was asking that for mildew | ||
pmichaud | but Q:PIR is really just an adverb on the Q "quote" operator | 21:05 | |
so it already knows how to do the { } | |||
it's basically the same as Q:regex | |||
ruoso | std: my $foo = Q:m0ld { my $void; }; | ||
p6eval | std 25398: OUTPUTĀ«############# PARSE FAILED #############ā¤Unrecognized quote modifier: 1 at /tmp/PlSVmFW0cB line 1:ā¤------> my $foo = Q:m0ld { my $void; };ā¤FAILED 00:02 33mā¤Ā» | ||
ruoso | right... I should look on how to add a quote modifier in STD | 21:06 | |
pmichaud | as far as "how to get std to recognize the new adverb"... I'm not immediately concerned with that part yet. :-) | ||
jnthn | pmichaud: On why it's hard to say, move Pair over fully to Perl 6, for example... | ||
What does | |||
pairproto.'!IMMUTABLE'() | |||
Become? | |||
pmichaud | well, we have to re-do Pair in that sense anyway. | 21:07 | |
jnthn | But more pressing, how to handle ".sub 'get_string' :method :vtable" ? | ||
pmichaud | because Pair keys are immutable but values are mutable, iirc. | ||
ruoso | TimToady, how hard it would be to add a new quote modifier? | ||
pmichaud | I don't know how to deal with vtable yet. | ||
again, some things will have to remain in PIR for the time being. | |||
jnthn | is vtable('...') # trait that we only make available through use? | ||
Sure. | |||
pmichaud | or we start adding rakudo-specific traits, yes. | ||
I just want to get the simple stuff first. | 21:08 | ||
jnthn | Sure. | ||
That might be a blocker for list. But adding some Rakudo-specific traits is easy enough. | |||
pmichaud | (also, .sub 'get_string' :method :vtable is wrong.... it should generally be .sub '' :vtable('get_string') | ||
(there's quite a few of those hanging around the codebase) | 21:09 | ||
jnthn | not .sub 'Str' :vtable('get_string') ? | ||
pmichaud | possibly that, although we run into problems there as well. | ||
jnthn | How so? | ||
pmichaud | subclasses lose the vtable distinction | ||
i.e., if a subclass overrides Str, its vtable still points to the parent. | 21:10 | ||
jnthn | Oh | ||
Yes. | |||
pmichaud | so I'm thinking that all vtable stuff may eventually just end up in Object. | ||
jnthn | OK, makes sense. | ||
pmichaud | Either that or we have logic in the compiler that recognizes certain methods as corresponding to vtable entries. | ||
jnthn | That was the other approach I pondered. | ||
Because it saves a re-dispatch. | |||
21:10
dukeleto joined
|
|||
pmichaud | so that when someone does method Str() { ... } the compiler automatically adds the :vtable item | 21:10 | |
[particle] | pmichaud: git clone ; perl Configure.pl --gen-parrot # works | 21:11 | |
pmichaud | for short term I've been thinking we live with re-dispatch | ||
jnthn | *nod* | ||
[particle] | nmake spectest broke | ||
pmichaud | I mean, we re-dispatch so many other places | ||
dukeleto | evalbot: perl6: say (10).log | ||
pmichaud | perl6: say (10).log | ||
p6eval | rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
..pugs: OUTPUTĀ«2.302585092994046ā¤Ā» | |||
..elf 25398: OUTPUTĀ«2.30258509299405ā¤Ā» | |||
jnthn | [particle]: What broke about it? | ||
dukeleto | pmichaud: thanks | ||
[particle] | svn co "http:\\svn.pugscode.org\pugs\t\spec" t\spec | ||
pmichaud | overagressive slash replacements :-( | 21:12 | |
jnthn | patches welcome ;-) | ||
dukeleto | perl6: say (1,2).log | ||
p6eval | pugs: OUTPUTĀ«0.6931471805599453ā¤Ā» | ||
..rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | |||
..elf 25398: OUTPUTĀ«0.693147180559945ā¤Ā» | |||
[particle] | working on a patch now | ||
jnthn | Hmm...why did *I* not get hit by that one? | ||
dukeleto | pmichaud: that looks like the evalbot doesn't have the perl6 binary, cause that is not the error I get on my machine | ||
pmichaud | I'm thinking we should not be doing s{/}{\\}g on the Makefile text. | 21:13 | |
[particle] | you probably had t/spec already | ||
i'm using a fresh git clone | |||
pmichaud | Instead, the Makefile should have @slash@ in places where slashes are needed. | ||
(indeed, that's how I had it originally -- not doing the slash replacements) | |||
dukeleto: yes, there seems to be an issue with the evalbot at the moment | |||
dukeleto | pmichaud: ok, just making sure | 21:14 | |
21:21
bacek joined
|
|||
jnthn | pmichaud: We maybe soon can close rt.perl.org/rt3/Ticket/Display.html?id=49173 ;-) | 21:28 | |
pmichaud | afaic, we can close it now. We now allow builtins in Perl 6. :-) | 21:31 | |
we still have some more features we need, yes. | |||
but the goal of the ticket is met. | |||
jnthn | Oh, that ticket has a patch for Array.splice written in Perl 6... | 21:32 | |
pmichaud | feel free to add if appropriate (and working) | ||
jnthn | Sure, it has workaround for earlier bugs in, will check. | 21:33 | |
bacek | (Array.splice in Perl6)-- | 21:39 | |
(Reduce metaop in Perl6)++ | |||
:) | |||
21:40
pmurias joined
|
|||
jnthn | Heh, we don't have a .splice on Array yet...this could get some more spec tests if it's right... | 21:42 | |
21:45
bacek left
|
|||
jnthn | pmichaud: Resolving that ticket will also resolve all of the dependencies on rt.perl.org/rt3/Ticket/Display.html?id=49171 | 21:48 | |
pmichaud | I'm in favor of resolving the ticket. :-) | 21:49 | |
for 49171 we need to pick our new 'high priority items' :-) | 21:50 | ||
actually, we should get masak to use 49171 to indicate his priorities :-) | |||
jnthn | Doesn't masak already have enough tickets? ;-) | ||
oh wtf i haz a fail | 21:54 | ||
...under the harness only. | |||
...and it doesn't segfault. Huh. | 21:55 | ||
jnthn treats it as a heisenbug. | |||
pmichaud: In answer to, does "is export" do anything, it seems not.. | 21:59 | ||
dalek | kudo: d3cc978 | jnthn++ | (5 files): Some more methods from Bool and Pair converted to Perl 6. |
22:00 | |
pmichaud | the purpose of 49171 is so we can say "of the tickets that remain, these are relatively more important" | ||
jnthn | OK | 22:01 | |
I'll leave it and we can attach new important ones to it. ;-) | |||
OTOH | |||
22:01
wknight8111 joined
|
|||
jnthn | This source ticket is one of the oldest in the queue, so the outcome of adding a dependency on the "this is important" ticket doesn't seem to improve its chances much. ;-) | 22:02 | |
Hmm. I'm pretty sure this splice ain't rigth. | 22:03 | ||
If only for its signature... | |||
wayland | Incidentally, for those interested in portable paths, I've changed this in some of the most recent updates of S16 :) | 22:04 | |
jnthn | oh no, it's right... | ||
(By S29) | |||
pmichaud | well, the goal was to have one quick place to say "what's important", and that 49171 would be the canonical place to look | 22:06 | |
jnthn | OK. | 22:07 | |
pmichaud | i.e., it becomes important by convention | ||
or, stated another way, next time masak has a list of tickets he'd like us to look at, we tell him to make them dependencies of 49171 :-) | |||
or we could start using (gasp) the 'priority' feature of RT. | 22:08 | ||
22:08
timbunce joined,
timbunce left
|
|||
pmichaud | oops, I'm being called to dinner. bbl | 22:08 | |
jnthn | OH AWESOME splice (after a small fix) gets us passing two more of the 99 problems. | 22:11 | |
22:14
bacek joined
|
|||
wayland | For those discussing prompt(), I agree it belongs on a class/role, but haven't decided which yet. Maybe one that hasn't been created yet :) | 22:14 | |
Term maybe? | 22:15 | ||
dukeleto | perl6: say 42 | 22:17 | |
p6eval | rakudo 876c09: OUTPUTĀ«Parrot VM: Can't stat languages/rakudo/perl6.pbc, code 2.ā¤main: Packfile loading failedā¤Ā» | ||
..elf 25398, pugs: OUTPUTĀ«42ā¤Ā» | |||
22:17
bacek_ joined
22:25
_jedai_ left,
|jedai| joined
|
|||
pugs_svn | r25399 | pmurias++ | [mildew] update to work with STD HEAD | 22:27 | |
pmurias | ruoso: i think marking stuff in bootstrap.dot with black as being in "simplified Perl 6" doesn't make much sense | 22:30 | |
dalek | kudo: 444a4c8 | jnthn++ | (2 files): Add Array.pm to the prelude. For now it just contains splice, written by cspencer++ and attached to RT#49173. Happily, this gets two more of the 99 problems spectests running. |
22:31 | |
jnthn | pmichaud: OK, I think that's about all from me today...getting tired. | 22:32 | |
Journal here: use.perl.org/~JonathanWorthington/journal/38508 | |||
pmichaud | jnthn: great work today, as usual. I'll see what I can do with 'is export' | 22:33 | |
jnthn | pmichaud: OK. Note that one thing that we probably need to fix up to make that work, is that the invocant is currently untyped. | ||
If we can implement lexical $?CLASS though, that should become a trivial fix. | 22:34 | ||
And I think that should be relatively easy too. | |||
But those two are probably needed for export to work properly | |||
pmichaud | agreed... I'm just wanting to get the basic methods exporting for now. we can fix up the mmd stuff when we get to it. | ||
jnthn | Oh, no doubt some methods need to be marked multi... | ||
I didn't mark much multi today. | 22:35 | ||
pmichaud | they're easy fixes when we get to them. At least, they should be. | ||
jnthn | Aye, agree. | ||
Just mentioning them so you don't hit upon them unexpectedly. :-) | |||
pmichaud | good. | ||
jnthn | Hopefully the Perl 6 prelude gets more people involved, anyway. | 22:37 | |
It should certainly make some things seem less mysterious. | |||
pugs_svn | r25400 | pmurias++ | [mildew] | ||
r25400 | pmurias++ | the prelude is loaded implicitly(use --no-prelude to mildew) to disable this behaviour | |||
pmichaud | as long as it's the right sort of involvement. I'm not fond of the C<Tree> stuff being discussed on p6l :-) | ||
jnthn | I've been mostly ignoring it. | ||
22:39
kane_ joined,
kane_ left
|
|||
pmurias | C<Tree> stuff = "IO, Trees, and Time/Date" | 22:40 | |
? | |||
jnthn | Probably, or some part thereof. | 22:41 | |
I didn't read it enough to know what the Trees bit is about... | |||
Tene_ | something like a Tree role or something that directory trees can do | 22:42 | |
iirc | |||
jnthn | Once there's a spec it seems people are mostly agreeing on, I'll start paying attention. :-) | ||
pmurias | jnthn: it's funny that rakudo and mildew both got a Perl 6 prelude on the same day ;) | 22:46 | |
jnthn | Yeah! :-) | 22:48 | |
Given the duration of both projects (scale of years), both unintentionally ending up with it on the same day is kinda amusing. :-) | |||
Maybe it's a sign... ;-) | |||
wayland | The night before Christmas? :) | 22:49 | |
22:49
ejs left
|
|||
wayland | Incidentally, the idea of the Tree role is that it be able to represent any kind of tree, including directory trees | 22:49 | |
pmichaud: Do you have a specific objection to the Tree ideas? | 22:50 | ||
jnthn | There's...a lot of different types of trees... | ||
wayland | I agree that's a problem. My experience is with the Unix filesystem and with XML | 22:51 | |
Which is why I'm seeking objections, so that I can find weaknesses in the model :) | |||
22:54
hercynium left
22:55
jferrero joined
|
|||
pmurias | wayland: shouldn't XML be represented in a typed form in most cases (when you have a defined schema)? | 23:00 | |
wayland | pmurias: Not sure what you mean. Are you wanting to read the XML elements in as objects, with the XML attributes being instance attributes | 23:03 | |
? | |||
Btw, I'd be interested to hear people's feedback on whether the new Spec class/role directory should be called "lib" (as moritz suggested), or S32-standard-modules. | 23:10 | ||
I suggested the second, because it seems to me that lib/ would be appropriate for code, but this is not code | 23:11 | ||
pmurias | wayland: what is suppososed to live in that directory? | 23:12 | |
wayland: re XML i don't have any experience with it (not counting XHTML) so you should propably ignore my question | 23:17 | ||
23:17
shinobi-cl joined
|
|||
pmurias | wayland: Perl 6 is supposed not to have a standard library | 23:18 | |
wayland | pmurias: What is supposed to live in that directory is specs for the various different Perl6 built-in objects, ie. chunks of S29 (but in separate files), and chunks of S16, and maybe others. | ||
Maybe "standard library" is the wrong term | |||
predefined objects? | |||
pmurias | "stuff in the prelude" | 23:19 | |
wayland | For example, the IO spec seems to be requiring that we have eg. a predefined IO::Readable role interface, and a redefined DateTime class (for representing ctime et. al.) | ||
How about S32-Setting then? | 23:20 | ||
(maybe redefined isn't the word I want :) ) | 23:21 | ||
23:21
mib_p8ocx41b joined,
mib_p8ocx41b left
|
|||
wayland | pmurias: In response to your XML question, I suspect the answer is "sometimes, but not always" :) | 23:21 | |
jnthn | Note that it's possible to define a role that is optionally typed. | 23:22 | |
wayland | Btw, for those asking about new quoting constructs, S02 says they can be declared as macros :) | ||
shinobi-cl | "datetime" datatype , just like int ot str, now that would be useful | 23:23 | |
wayland | jnthn: I don't understand. Documentation? | ||
jnthn | S12, parametric roles | ||
wayland | shinobi-cl: I'm working on it, but it's been suggested to call it "Instant", instead of DateTime | ||
jnthn: Thanks. Investigating... | 23:24 | ||
jnthn | wayland: Not sure if they'll be useful for what you're doing, but worth knowing bout. | ||
shinobi-cl | well... mmmm Instant makes sense.. Because it would represent a specific instant in time, not a period of time | ||
pmurias | wayland: i'm a bit doubt full if adding XML and DateTime handling to the core is a sensible thing | 23:25 | |
wayland | I'm not adding XML handling | ||
shinobi-cl | But the idea of a time datatype, is to make calculations of, for example, which day of the week would be in 450 weekdays | ||
so in that context, instant would not make that much sense | 23:26 | ||
wayland | Merely a tree interface that *could* do XML if a class were written for it :) | ||
jnthn | It's an instant in the future. :-) | ||
Instant + Period = Instant? :-) | |||
wayland | shinobi-cl: Ok, the idea is that the Temporal package will do Instant and Duration :) | ||
jnthn | Instant + Instant = Meaningless | ||
Instant - Instant = Duration | 23:27 | ||
etc | |||
wayland | And other things (like Calendar, for Julian vs. Gregorian vs. ...) | ||
shinobi-cl | yes, but time can be just calculated as a normal vector... a number... but date calculations are not, they have to udestand differente date formats, and, consider "date locales" | ||
wayland | shinobi-cl: There will be room for parsing modules and locales and different calendars, don't worry | 23:28 | |
shinobi-cl | "date locales" that may change frecuently.. in my country the congress has added at least 3 holydays in the last 10 years | ||
ahh cool :) | |||
i would like to help, by the way | |||
wayland | The defaults may just be English with Gregorian, but there'll be room for other stuff | ||
Anyway, back to the question I really want answered -- are there any objections to calling the new Spec directory S32-setting-library? | 23:30 | ||
pmurias | one possible objection is that most of the funtions in S29 have a method counterpart | 23:32 | |
and splitting them apart doesn't seem a wise idea | 23:33 | ||
23:33
timbunce joined
23:34
duke_leto joined
23:35
duke_leto left
|
|||
pmurias | sleep& | 23:35 | |
23:35
pmurias left,
maerzhase left,
duke_leto joined,
duke_leto left
23:37
gravity joined
|
|||
wayland | I'd argue that S29 should mostly be saying "see <other spec>", and that the other specs should define the appropriate functions, with S29 just being a cross-reference | 23:38 | |
23:42
jferrero left
|