pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~330 days 'til Xmas Set by mncharity on 25 January 2009. |
|||
00:03
rob__ left
00:08
Josephine joined
00:15
[1]Josephine joined,
Josephine left,
[1]Josephine is now known as Josephine
00:25
drbean left
00:35
ayrnieu_ joined,
ayrnieu left,
ayrnieu_ is now known as ayrnieu
00:53
DemoFreak left
00:54
fbb joined
01:04
Eevee left
01:12
fbb is now known as ffbb,
icwiener left
01:20
shinobi-cl_ joined
01:23
alester joined
01:45
M_o_C joined
01:48
avar left,
avar joined
01:52
FurnaceBoy left
01:56
ffbb left
02:05
alester left
02:18
f00li5h is now known as Z0ffix
02:19
Limbic_Region left
02:21
Z0ffix is now known as f00li5h
02:38
hercynium joined
02:43
M_o_C left
02:53
shinobi-cl_ left
03:08
stephenlb left,
alester joined
03:15
stephenlb joined
03:21
eternaleye joined
03:38
jhuni joined
04:05
alester left
04:24
alester joined
04:26
alester left,
stephenlb left,
alester joined
04:37
alester_ joined
04:39
hercynium left
04:46
alester left
04:56
alester_ left
04:58
jhuni left
05:05
alester joined
05:30
Minthe joined
05:37
mberends joined
05:43
SamB left
05:55
kanru left
05:59
Minthe left
06:06
alester left
06:13
justatheory left
|
|||
pugs_svn | r25224 | lwall++ | [STD] implement real nesting of lexical scopes and packages | 06:19 | |
06:21
justatheory joined,
justatheory left
|
|||
pugs_svn | r25225 | lwall++ | [CORE] add Order enum symbols | 06:25 | |
07:04
hercynium joined
07:06
ab5tract joined
07:07
hercynium left
07:11
cai joined
07:21
PantheraPardus joined
07:34
dduncan joined
|
|||
dduncan | question ... I recall there being a language discussion about a generic grep-alike operator that partitioned its input list into 2 complementary lists, those passing or failing respectively ... what was that operator named ... I'm looking for a clue to find it in the docs | 07:36 | |
unless this was a meta-op (unlikely) | |||
I see there was chat about 'partition', but I'm looking for it in the spec | 07:37 | ||
note I'm just looking for a simple 2-way, not into arbitrary ways | 07:38 | ||
mberends | S29 says 'classify' | 07:39 | |
dduncan | thank you ... looking ... | ||
mberends | It looks right, but I've not seen it used or discussed. I wonder whether it's been implemented? | 07:42 | |
dduncan | I see 'classify' works N-way, which is fine as a more generalized operator ... | 07:44 | |
I think I'll go with that name for my own use as well, until something better comes along | 07:45 | ||
mberends | ok | ||
dduncan | or maybe not | ||
thanks for the pointer though, that's what I was looking for | |||
mberends | do you have any experience with method BUILD(...) {...} ? | 07:48 | |
TimToady | you mean submethod BUILD? | 07:49 | |
pugs_svn | r25226 | lwall++ | missing commas | 07:50 | |
dduncan | I have some experience with BUILD, what do you want to know? | 07:51 | |
07:52
ab5tract left
|
|||
dduncan | TimToady, since you're here, opinion question ... what might be a good name for a more specific form of 'classify' that always divides 2 ways based on a boolean filter? ... I would tend to name its 2 result lists 'passed' and 'failed' for context | 07:53 | |
or anyone else can answer | |||
I also prefer a name that is a noun, named after what it results in | |||
if such is possible | 07:54 | ||
I suppose 'classification' might work in a pinch, but that might be too generic ... or maybe not | |||
well same generic as the original | 07:55 | ||
mberends, I do have BUILD experience, what do you want to know? | |||
mberends | my suggestion is to just use 'classify', otherwise the function namespace gets more cluttered. | 07:56 | |
dduncan | I'm asking for the purpose of use in my own separate programming language ... I ask here because Perl 6 is one of my language's influences and there are lots of good ideas here | ||
so cluttering Perl 6 is a non-issue | |||
mberends | dduncan: thanks, I'm preparing my question in code form, will take a few minutes. | 07:57 | |
TimToady | perhaps if we were designing classify now we'd make it return a Capture of positionals for numeric values and named args for string values of the closure | 07:58 | |
dduncan | one style choice I made was to name routines that one would use in a value expression with a noun, similarly to how one would name a variable, and routines one would use as a statement are named with verbs ... the former 'is' something and the latter 'does' something | 07:59 | |
makes sense | |||
TimToady | yes, well, classification is a bit unweildy :) | ||
dduncan | if you mean because its a bit long, then yes | 08:00 | |
TimToady | and class is taken... | ||
mberends | 'part' as in hair | ||
dduncan | that might work | 08:01 | |
I actually thought of 'divide', which specifically says 2 ways, but I'd wonder if that confuses people | |||
mberends | split has the same problem | ||
splitting hairs | 08:02 | ||
TimToady | I like verbs | 08:03 | |
and Nasa has a long tradition of nouning verbs. "Go for deploy." | |||
mberends | yes, but you non verbs and verb nouns | ||
*noun | 08:04 | ||
dduncan | note, barring a solution, I have fallen back to a longer name of form 'foo_and_not_foo' ... note that I also already have distinct 'foo' and 'not_foo' functions; the one I was thinking of adding was meant to invoke doing the work once | ||
two cases so far ... 'restriction_and_cmpl' returned 2 results, that which 'restriction' (think SQL's WHERE) and 'cmpl_restriction' would return with the same arguments | 08:05 | ||
mberends | I dislike nouning adjectives, especially 'keynote' and 'cautionary' | ||
dduncan | the other case is 'semijoin_and_semidifference', which are both of 'semijoin' and 'semidifference' | ||
TimToady | dduncan: that's not very user-friendly, at last for the typist | 08:07 | |
*least | |||
dduncan | mind you, I don't expect people would use the both form very often ... normally they just want one | ||
mberends | grep does the one | 08:08 | |
so.. grep2 ? | |||
dduncan | as for nouning adjectives, this pattern basically follows from that I name my basic math functions [sum,difference,product,quotient] rather than [add,subtract,multiply,divide] | 08:09 | |
mberends likes grep2 | |||
dduncan | that might work | ||
note that my naming scheme probably makes more sense in the context that the parameters are all named, so eg the parameters of quotient are dividend and divisor | 08:10 | ||
such code should be very readable | |||
mberends | yes, like cobol ;) | 08:11 | |
dduncan | I don't go that far | ||
mberends | nobody should go that far | ||
dduncan | that is, while my language is a successor to SQL, I don't use COBOL like syntax as SQL does | 08:12 | |
mberends | now you've got me interested - I do lots of SQL work | ||
dduncan | lookup Muldis::D on CPAN ... that is what I am enhancing | ||
and Set::Relation, the first working implementation of one portion of it | 08:13 | ||
mberends | ok, thanks! | ||
dduncan | the specific situation is that I'm currently implementing a functional form of SQL's UPDATE, and implementing that involves partitioning the source rowset in 2, then updating attributes in one portion, then unioning the 2 parts together ... said 2 parts are those that pass/fail a filter ... | 08:14 | |
now when making this I thought it might be useful to users to be able to invoke one function to get pass+fail together rather than having to invoke 2 functions ... conceivably it might be more efficient and terser ... so this naming exercise came about | 08:16 | ||
the functional-update is named 'substitution' | |||
mberends | is that a high level way to avoid in-place updates? | 08:17 | |
dduncan | yes | ||
most of the language is pure functional, but it still provides simple ways to actually mutate variables when you actually want to | 08:18 | ||
basically it is as functional as can be reasonably done without making people go through contortions to change state like pure functional languages do | 08:19 | ||
the procedural equivalent of SQL's update is 'assign_substitution' | |||
which is shorthand for $foo = substitution( $foo ) | 08:20 | ||
in concept, but the implementation modifies $foo in place, whatever's efficient | |||
mberends | ok, I was afraid you were sacrificing efficiency in the name of idealism | 08:21 | |
dduncan | no, I'm quite pragmatic | ||
think of it this way ... the functions of Muldis D are analagous to anything you can use in a SQL SELECT statement | 08:22 | ||
08:22
iblechbot joined
|
|||
dduncan | and other SQL statements have a lot of syntax in common with SELECT | 08:22 | |
for example the WHERE clause | 08:23 | ||
08:23
ejs joined
|
|||
mberends | it's similar to DataSet etc classes from a company whose name I forget | 08:24 | |
dduncan | 'substitution' is one way you can say "select foo, bar * 2 as bar from baz" | ||
mberends will read Muldis::D thoroughly | 08:25 | ||
08:25
ab5tract joined
|
|||
dduncan | you can say that in Set::Relation with "$baz->projection( ['foo', 'bar'] )->substitution( sub { { 'bar' => $_->{'bar'} * 2 } } );" or some such | 08:26 | |
or skip the 'projection' if $baz doesn't have any other attributes | |||
or if you want all the attributes | |||
Set::Relation is meant to integrate more closely into Perl ... use it like Set::Object or something ... so it uses positional args and stuff | 08:27 | ||
anyway, thanks for the chat | 08:28 | ||
mberends | ditto | ||
08:29
ab5tract left
|
|||
dduncan | I also provide 'map' which does as you would expect ... the full generalization of SELECT ... FROM $baz ... | 08:32 | |
the projection, extension, substitution, etc are more specialized ... and expected | 08:33 | ||
08:33
ab5tract joined
08:35
jfredett_ joined,
DemoFreak joined
08:37
jfredett_ is now known as jfredett
08:40
jfredett left
|
|||
pugs_svn | r25227 | lwall++ | [STD] more symbol table cleanups | 08:41 | |
dduncan | now that I think about it, for my current problem the 'foo_and_bar' version seems to work, though I shortened one of them to semijoin_and_diff | 08:44 | |
I'll also go through the language and look for other things to shorten | |||
mberends | dduncan: Muldis::D is a major effort. Are you writing a Rosetta on parrot? | ||
dduncan | Rosetta is the name of the Muldis D implementation over Perl 5 and Perl 6 ... I also plan to implement Muldis D as a Parrot hosted language but it won't be called Rosetta there, probably | 08:45 | |
over Perl the naming is meant to be more like the naming scheme of DBI or other db apis ... in Parrot I'd use a naming scheme more like general Parrot hosted languages use | 08:46 | ||
mberends | how would I call your code from Perl 6 (eventually) ? | 08:47 | |
dduncan | either call it "Muldis D" or more likely make up some new brand like "Rakudo" did with Perl 6 | ||
with the Parrot hosted language version, you call the code like you would call Python or Ruby or etc code | |||
with the Perl 6 hosted version you would call it like how you invoke SQL by way of DBI | 08:48 | ||
mberends | guessing here, will you persist the data via a DBI like driver to in SQL? | ||
dduncan | yes | ||
or more specifically, think of Rosetta the same as DBI, with its own set of pluggable drivers | 08:49 | ||
one can choose to use a driver that fronts a SQL database, or you could pick a driver that doesn't ... same as DBI | |||
eg, DBD::CSV isn't a SQL database | |||
mberends | yes, it makes sense to abstract the storage that way. | ||
Well done on conceiving such an impressive architecture. Are there concrete implementations running yet? | 08:51 | ||
dduncan | as for treating Muldis D as a generic language like Perl/Python/etc, its paradigm is that "the database" is how you persist things, and that is your interface to files ... similarly your database doesn't have to persist, or parts could and parts wouldn't | ||
think of "the database" as your namespace for global variables | |||
like package-level variables in Perl | |||
08:52
cosimo joined
|
|||
dduncan | and so the direct analogy to Muldis D user-defined routines are your SQL stored procedures etc | 08:52 | |
so like with SQL, Muldis D essentially merges your concepts of code library and data ... they live in one multi-level namespace and can either persist or not | 08:53 | ||
and its all transactional | 08:54 | ||
08:57
Josephine left
|
|||
mberends | "the database" as your namespace... beware... blogs.tedneward.com/2006/06/26/The+...ience.aspx | 08:58 | |
mberends came at this before via Hibernate and remains scarred | 08:59 | ||
dduncan | keep in mind I have lexical variables too | 09:00 | |
a brief explainer, the global namespace is divided first into built-in stuff and user-defined stuff ... the latter is divided in to 0..N depots, each depot corresponding to what a SQL DBMS would call a database ... each depot is individually either persisted or not, and each one can persist in different places ... doing a query involving multiple depots is the means of so-called cross-database queries | 09:02 | ||
you don't have to keep everything together, just as a typical application can choose to use multiple files | 09:03 | ||
mberends | wow | 09:04 | |
dduncan | the meaning of depot varies by implementation or Rosetta driver ... over SQLite, each SQLite file would be a depot | ||
the definition of depot is the maximum scope in which its parts are interdependent | 09:05 | ||
eg, if you define a data type and a routine or variable uses that type, they must be in the same depot | |||
you can make a depot a narrower scope, eg just one behind-the-scenes database schema, but it can't be wider than I said | 09:06 | ||
in code terms, a depot is like a library, and contains everything necessary to understand itself | 09:07 | ||
code in one library can invoke code in another, but each needs its own copy of the data type definitions that said call involves | 09:08 | ||
09:09
finanalyst joined
|
|||
dduncan | looking at url ... | 09:10 | |
actually, I've read that one before | |||
finanalyst | does the rakudo git repository still have to reside inside parrot/languages/? | 09:11 | |
mberends | yes, temporarily | ||
finanalyst | when is this expected to change? | 09:12 | |
mberends | pmichaud++ will say. perhaps less than a week | ||
finanalyst | thanx | ||
dduncan | if it helps, you could call Muldis D an "object relational" language ... it is not an ORM or generic object persistence layer ... you use Muldis D as if it were a more advanced version of SQL | ||
mberends | hopefully www.thethirdmanifesto.com/ does not influence you too much - it's not pragmatic, SQL is here to stay. | 09:14 | |
dduncan | I disagree ... it is very pragmatic | 09:15 | |
but it is often misunderstood | |||
I'm also not dogmatic | 09:16 | ||
mberends | heh | ||
dduncan | that's one of my main influences, but I still make my own decisions, and use lots of other input | ||
if someone says TTM is not pragmatic, they probably don't understand it | 09:17 | ||
people say Perl is irrelevant and Perl 6 is going nowhere too, but we don't believe that, do we? | |||
mberends | you're giving me quite a long reading list ;) | 09:18 | |
dduncan | (yes, I do see that as a fair analogy, not a strawman) | ||
I see my effort with Muldis D, relative to SQL, to be a lot like the efforts with Perl 6 relative to Perl 5, and other languages | 09:22 | ||
09:22
ejs left
|
|||
dduncan | yes, SQL will stay around for a long time, same as COBOL, but over time better things will come along and get adopted | 09:22 | |
mberends | That's a very noble quest. I like Perl 6 for the same reason. | 09:23 | |
dduncan | one similarity is that a key feature of Muldis D is to be something that is easy to translate other database-domain languages to | 09:25 | |
I don't know if you were at OSCON, but part of Larry's state of the onion was that he foresaw that one day every language would be a dialect of Perl 6 | |||
I was there, and its a very interesting thing to say | 09:26 | ||
when it gives you power to customize/define your own grammars like that | |||
and the various grammars still work together | |||
mberends | no, if it works out Nordic Perl will be my first conference | ||
dduncan | I have yet to be to a Perl-specific conference but hope to start attending them soon ... realistically 2010 will be the first time ... can't afford it this year | 09:28 | |
mberends, is this you: search.cpan.org/~MBERENDS/ | |||
? | 09:29 | ||
mberends | I interpreted Larry's vision as a flexible enough grammar system that you could emulate C or anything else in it. CPAN, yes, but my recent work is in github.com/eric256/perl6-examples/tree/master | ||
dduncan | I assume 'eric' isn't also your name | 09:30 | |
09:30
barney joined
|
|||
mberends | Eric Hodges set it up and welcomes contributors. See the README. | 09:30 | |
dduncan | do you have a web page? | 09:32 | |
09:32
ab5tract left
|
|||
mberends | I'm ashamed to say it's unmaintained so I don't refer anyone to it. | 09:33 | |
dduncan | fair enough | ||
do you have a business, or who do you work for? | 09:34 | ||
mberends | self employed in UK and NL, teaching programming | ||
dduncan | I see ... as for me, self employed and doing some work for the owner of a local hotel chain | 09:35 | |
in CA | |||
mind you, my recent stuff on CPAN links to that | 09:36 | ||
mberends | I just found your Muldis pages and guessed something similar. | 09:37 | |
dduncan | interesting your mentioning your location and profession though ... one of the 2 TTM authors, the main one I talk to, is also in the UK and teaching, at Warwick University I think | 09:38 | |
after having worked at IBM for a long time | |||
mberends | I think Edward Codd and Chris Date are both from around there. | 09:39 | |
dduncan | I was talking about Hugh Darwen being in the UK ... wherever Chris Date is from I'm not sure but he lives in California now | ||
and Codd is dead, unfortunately | 09:40 | ||
mberends | Date moved from London to CA in 1974 according to a book I have. | 09:42 | |
dduncan | I see | 09:44 | |
in case there's confusion, I'm in Canada (BC), not California ... I'm not sure my websites say that too obviously | 09:46 | ||
mberends | oops, sorry. like talking to a Welshman about England... | ||
dduncan | I'm not saying you were confused, but we both used CA to mean something different | 09:47 | |
country code vs state code | |||
mberends | yes, but now it's clear | ||
I'm in the Netherlands but not in in Holland (although I was born there). | 09:48 | ||
afk & | 09:57 | ||
10:04
finanalyst left
10:08
cdwillis joined,
iblechbot left
10:09
cdwillis left
10:11
maerzhase joined
|
|||
moritz_ | [particle]1: ping | 10:18 | |
10:32
meppl joined
10:45
iblechbot joined
11:01
jan_ left
11:05
rob joined,
rob is now known as Guest50931
11:13
maerzhase left
11:19
masak joined
11:20
rob joined
11:21
rob is now known as Guest12310
11:22
maerzhase joined
|
|||
masak | moritz_: found the cause of the make error in proto. quite obvious in retrospect, really. | 11:24 | |
I was using the latest Rakudo with Parrot 0.9.0. | |||
11:25
kanru joined,
aindilis left
|
|||
pugs_svn | r25228 | masak++ | added 'protoobject' and 'metaclass' to TODO | 11:26 | |
11:34
Guest50931 left
11:38
bacek joined
|
|||
mberends | masak: are you preparing proto for the time when rakudo is outside the parrot tree? irclog.perlgeek.de/perl6/2009-01-29#i_872583 | 11:47 | |
afk & | 11:49 | ||
masak | mberends: Rakudo _is_ outside the parrot tree. | ||
and yes, I am. | |||
I have two options right now: either build Parrot 0.9.0 along with the Rakudo release that comes with it, or build svn HEAD Parrot with git HEAD Rakudo. | 11:50 | ||
I'll do the first first, and the second later :) | 11:51 | ||
mberends: oh, sorry, misunderstood you. | 11:55 | ||
thought you said "outside of the Parrot repo"... | |||
no, I'm not preparing proto in any special way, but the change will not be drastic, I think. we'll probably need one more environment variable. | 11:56 | ||
12:18
ludan joined
|
|||
moritz_ | perlgeek.de/blog-en/perl-6/where-ra...lives.html | 12:20 | |
masak | as usual, moritz_++ | 12:22 | |
moritz_ | thanks | 12:24 | |
masak | it is a sign of community strength that information like this gets out despite the two main devs being temporarily away. | ||
moritz_ | I was just tired of answering the same questions all over again ;-) | ||
masak | that's a very good reason to blog about something, actually. | 12:25 | |
avar | (rakudo stuff switching to git++ away from svn--)++ | 12:32 | |
12:35
dduncan left
|
|||
masak | mberends++ # excellent suggestions in proto script | 12:40 | |
I also visited #bash and got a good all-round bashing. I'm on a fairly steep learning curve here. :P | |||
moritz_ | is #bash a channel about the the shell, or about being bashed? ;-) | 12:41 | |
masak | moritz_: don't ask me. :) they did help me with the shell script, but they did the other thing as well. | 12:44 | |
no, actually they were fairly nice to me. | 12:45 | ||
they just made sure I understood that my solution was the worst possible one before giving me the right answer. :P | |||
13:01
ludan left
13:07
Limbic_Region joined
13:11
bacek left
13:12
bacek joined
13:15
pmurias joined
|
|||
pmurias | hi | 13:15 | |
13:16
Psyche^ joined
|
|||
masak | hi pmurias | 13:16 | |
13:25
Limbic_Region left
13:32
Patterner left,
Psyche^ is now known as Patterner
|
|||
pmurias | hi masak | 13:33 | |
masak | hm, is there any way to change the working directory from within Rakudo? | 13:53 | |
& | 13:54 | ||
moritz_ | don't think so | ||
13:57
pmurias left
13:58
Whiteknight joined
14:21
finanalyst joined
|
|||
masak | ah, but this workaround apparently works: run( "cd $dir; $command" ); | 14:21 | |
14:35
zamolxes joined
14:37
pmurias joined
14:47
jan__ joined
|
|||
pugs_svn | r25229 | putter++ | [elf] README's: Mention STD_red dependency in QUICKSTART instructions. | 14:49 | |
r25229 | putter++ | [STD_red] README: Mention ruby 1.9.1, and that readline is no longer required. Light dusting. | |||
r25229 | putter++ | STD_red_run: #! ruby1.9 instead of ruby, as that's the more common name for 1.9. | |||
14:50
barney left
14:53
SamB joined
|
|||
pugs_svn | r25230 | masak++ | [u4x] added a few more Perl 6 terms to TODO | 14:56 | |
14:57
kbaud1 joined
|
|||
masak | two days after toying with the idea, this now works on my box: | 15:26 | |
gist.github.com/59903 | |||
much work remains to be done, but it's looking good so far. | |||
hudnix | That page is not loading for me | 15:33 | |
masak | hm. not here either, it seems. :/ | 15:34 | |
PerlJam | Is there something wrong with the rakudo repo? I just tried to clone it and it aborts. | ||
masak | re-pasting somewhere else. | 15:35 | |
hudnix | all of github is down | ||
masak | that explains both of the above things. :) | ||
PerlJam | ah | ||
masak | sial.org/pbot/34926 # trying again :) | 15:36 | |
hudnix | wow | 15:37 | |
masak | hudnix: I'm making a note here: 'positive feedback' :) | 15:38 | |
hudnix | :) | ||
masak | of course, it won't work for anyone else as long as github is down... | 15:39 | |
15:41
maerzhase left,
maerzhase joined
15:59
szabgab joined
|
|||
szabgab | hi, who runs perl6.org ? | 16:00 | |
on the front page there are links under Tutorial that lead to 403 Forbidden pages | 16:01 | ||
moritz_ | Registrant Name:Daniel Wright | 16:04 | |
16:10
maerzhase1 joined,
xinming left
16:16
ab5tract joined
16:18
Tene joined
16:20
maerzhase left
16:23
ab5tract left
|
|||
masak | proto now also downloads and builds druid. | 16:23 | |
mberends | masak++ ! | 16:25 | |
masak | we'll see where this leads. I've never built a packaging system before. :) | 16:26 | |
but I'm somewhat struck myself by the simplicity of './proto install druid'. it has a certain je ne sais quoi. | |||
moritz_ tries proto... | 16:27 | ||
16:28
maerzhase1 left
|
|||
moritz_ | is it inentional that it downloads parrot each time I install something? | 16:30 | |
masak | moritz_: no, but I have little wiggle room there. | ||
it can't set PARROT_DIR unless you source it. | |||
as in 'source proto'. | 16:31 | ||
moritz_ | rakudo: say '/' ~~ :d | ||
p6eval | rakudo f99045: OUTPUTĀ«1ā¤Ā» | ||
moritz_ | rakudo: say '/foo' ~~ :d | ||
p6eval | rakudo f99045: OUTPUTĀ«stat failed: No such file or directoryā¤current instr.: 'parrot;Any;:d' pc 12868 (src/builtins/any-str.pir:224)ā¤Ā» | ||
masak submits rakudobug | |||
um, I wrote that sub :/ | |||
moritz_ | hey, I CAN FINDS BUGY 2! | ||
masak | by rights, I should fix that. | ||
16:32
Tene_ left
|
|||
masak | moritz_++ | 16:32 | |
moritz_ | it should be as simple as push_eh your_label\n...\nyour_label: 'fail'() | ||
moritz_ tries that | |||
masak | hokay. | 16:33 | |
I was thinking something like 'check if the file is there first', but maybe catching an exception is the better way to do it. | |||
moritz_ | yes, check first can lead to race conditions | ||
masak | oh, right. | 16:34 | |
moritz_: :f needs the same treatment, btw. | |||
moritz_ | uhm, 'make spectest' doesn't run any tests here :( | 16:36 | |
avar | (defun fido (x) (case x ((0 1 2) x) (otherwise (+ (fido (- x 1)) (fido (- x 2)) (fido (- x 3)))))) | 16:37 | |
hrm | |||
masak tries | |||
moritz_ | masak: I'm in the 'parrot under rakudo' setup right now | ||
masak | good to know. I'm not. | ||
16:37
SamB left
|
|||
masak | 'make spectest' seems to work fine here. | 16:37 | |
avar | sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } } | 16:38 | |
rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } } say fido(8) | |||
p6eval | rakudo f99045: OUTPUTĀ«Statement not terminated properly at line 1, near "say fido(8"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | ||
avar | rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x,3); } }; say fido(8); | ||
p6eval | rakudo f99045: OUTPUTĀ«too many arguments passed (2) - 1 params expectedā¤current instr.: 'fido' pc 88 (EVAL_16:49)ā¤Ā» | ||
avar | rakudo: sub fido ($x) { if $x == 0|1|2 { $x } else { [+] fido($x-1), fido($x-2), fido($x-3); } }; say fido(8); | ||
p6eval | rakudo f99045: OUTPUTĀ«68ā¤Ā» | ||
avar | nice:) | ||
dalek | kudo: a26b223 | (Moritz Lenz)++ | t/harness: [t/harness] parrot libs can also be in parrot/lib |
16:39 | |
16:39
SamB joined
16:41
finanalyst left
|
|||
masak | moritz_: I amended the proto script so it won't download Parrot anew if it's already downloaded. | 16:41 | |
I'm sure there are much better ways to do what that script does. I'm just taking the shortest path possible to the goal -- painless installation. | 16:42 | ||
16:47
finanalyst joined
|
|||
moritz_ | masak: I'd appreciate a 'test' target on top of 'install' ;-) | 16:48 | |
masak | moritz_: as in './proto test november' or as in 'install should run the tests also'? | 16:49 | |
moritz_ | masak: the former | ||
masak | no prob. | ||
16:49
cosimo left
|
|||
masak | but I want the tests to be optional in the install process, at least for now. | 16:50 | |
16:50
cosimo joined,
cosimo left
|
|||
masak | more precisely, failing tests shouldn't constitute a failed build of a project. | 16:50 | |
16:51
c9s_ is now known as c9s,
nihiliad joined
16:57
xinming joined
16:59
kanru left
|
|||
moritz_ | rakudo: say $*PROGRAM_NAME | 16:59 | |
p6eval | rakudo a26b22: OUTPUTĀ«Use of uninitialized valueā¤ā¤Ā» | ||
17:02
finanalyst left
|
|||
masak | moritz_: I've implemented a test subcommand. :) | 17:02 | |
moritz_ | masak: nice ;-) | ||
17:02
rhr_ joined
|
|||
masak | lots of code duplication right now, but that's ok during the initial inflation of a project like this. | 17:02 | |
pugs_svn | r25231 | moritz++ | [t/spec] fudge filetest.t for rakudo | 17:07 | |
moritz_ | that commit did a lot more than what the commit message said :-) | 17:08 | |
masak | I grow increasingly attached to git's commit --amend, and miss it increasingly in svn... | 17:09 | |
dalek | kudo: 6211ae2 | (Moritz Lenz)++ | (2 files): filetests shouldn't die on non-existant files. |
17:10 | |
moritz_ | but I guess I can only use it before pushing the changes, right? | ||
masak | aye. | ||
there are no actual barriers to doing it to 'upstream' as well, but there are lots of red flags and warnings in the documentation. | 17:11 | ||
17:11
rhr left
17:20
alester joined
17:22
DemoPhreak joined
17:23
FurnaceBoy joined
17:28
IllvilJa left
17:39
justatheory joined,
DemoFreak left
17:47
alester left
|
|||
dalek | kudo: 13f6779 | (Moritz Lenz)++ | config/makefiles/root.in: [Makefile] don't try to checkout //-URLs. |
17:48 | |
moritz_ | @tell pmichaud 'make spectest' doesn't seem to work if parrot in parrot/ below rakudo | ||
lambdabot | Consider it noted. | ||
17:49
justatheory left
|
|||
pugs_svn | r25232 | particle++ | [S19] remove some P5-think, comb is the new hotness | 17:53 | |
17:56
M_o_C joined,
icwiener joined
|
|||
masak | comb++ | 17:56 | |
18:01
alester joined
18:12
masak left,
M_o_C left
|
|||
moritz_ leaves and will be back on sunday evening | 18:14 | ||
ciao | |||
18:16
Whiteknight left
18:17
pmurias left
18:27
alester left
|
|||
s1n | are range slices possible? | 18:31 | |
18:36
alester joined
|
|||
TimToady | perl6: say ('a'..'z')[24,4,18] | 18:36 | |
p6eval | rakudo 13f677: OUTPUTĀ«elements() not implemented in class 'Range'ā¤current instr.: 'postcircumfix:[ ]' pc 3452 (src/classes/Positional.pir:108)ā¤Ā» | ||
..pugs: OUTPUTĀ«yesā¤Ā» | |||
..elf 25232: OUTPUTĀ«Can't call method "postcircumfix__91_32_93" without a package or object reference at (eval 125) line 3.ā¤ at ./elf_h line 4333ā¤Ā» | |||
pugs_svn | r25233 | putter++ | [elf_h] Call .Bool on objects in tests. [] now tests false. | 18:39 | |
r25233 | putter++ | Performance hit is something like 5% (~1 sec) for self compilation. | |||
r25233 | putter++ | elfcl is unaffected - it was already doing this. | |||
s1n | std: (1..10)[2,3,4] | 18:40 | |
p6eval | std 25233: OUTPUTĀ«00:02 33mā¤Ā» | ||
s1n | okay, that answers that | ||
TimToady | std will only tell you if the syntax parses; it says little about semantics | ||
s1n | TimToady: can you use whatever in a slice? | ||
TimToady | what would it mean? | 18:41 | |
repeat the last element? | |||
s1n | i have no idea, i was just asking | ||
18:42
cai left
|
|||
TimToady | when used as the only element, it means all the subscripts | 18:43 | |
though I doubt anyone implements that yet | |||
perl6: say [1..10][*] | |||
p6eval | pugs: OUTPUTĀ«1ā¤Ā» | ||
..rakudo 13f677: OUTPUTĀ«1 2 3 4 5 6 7 8 9 10ā¤Ā» | |||
..elf 25233: OUTPUTĀ«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.ā¤ at ./elf_h line 4346ā¤Ā» | |||
s1n | weee rakudo works | 18:44 | |
so (1..10)[*] means (1,2,3,4,5,6,7,8,9.20)? | |||
s/20/10/ | |||
TimToady | * means all the subscripts in this dimension, so for one dimensional, it comes down to that | 18:45 | |
18:45
Psyche^ joined
|
|||
TimToady | note that [] is 0-dimensional, while [*] is 1-dimensional | 18:45 | |
perl6: [1..10][*;*] | |||
s1n | what do you mean by dimensional? | ||
p6eval | rakudo 13f677: OUTPUTĀ«Statement not terminated properly at line 1, near "[*;*]"ā¤ā¤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)ā¤Ā» | 18:46 | |
..elf 25233: OUTPUTĀ«Undefined subroutine &GLOBAL::whatever called at (eval 122) line 3.ā¤ at ./elf_h line 4346ā¤Ā» | |||
..pugs: OUTPUTĀ«*** ā¤ Unexpected "*]"ā¤ expecting term postfix, operator or "]"ā¤ at /tmp/ZfpD9VHwzg line 1, column 11ā¤Ā» | |||
TimToady | see S09 | ||
s1n | akk, don't take this the wrong way, but searching the spec is really difficult for me | ||
i'll try though | 18:47 | ||
std: (1..10)[*;*] | |||
p6eval | std 25233: OUTPUTĀ«00:02 32mā¤Ā» | ||
s1n | std: (1..10)[1,*] | ||
p6eval | std 25233: OUTPUTĀ«00:02 33mā¤Ā» | ||
TimToady | std: (1..10)[Stuff::and::nonsense] | 18:52 | |
p6eval | std 25233: OUTPUTĀ«Undeclared name:ā¤ Stuff::and::nonsense used at 1 ā¤00:02 32mā¤Ā» | ||
18:52
M_o_C joined
|
|||
s1n | TimToady: S02 doesn't say anything about Range's object structure. is it supposed to be isa List? does Positional? | 18:54 | |
18:54
szabgab left
18:56
Patterner left,
Psyche^ is now known as Patterner
|
|||
TimToady | we need to describe all the basic types in real P6 code | 18:57 | |
but anything that is iterable should be coercable to Positional somehow | 18:58 | ||
s1n | well, positional does not imply list | ||
are we expecting _all_ list functionality from ranges, or just positional functionality | 18:59 | ||
18:59
rindolf joined,
jhuni joined
|
|||
TimToady | if you use a range as a list it should behave | 18:59 | |
it should be no different from using a range as a part of a list | 19:00 | ||
s1n | std: say "list" if Range isa List | ||
p6eval | std 25233: OUTPUTĀ«############# PARSE FAILED #############ā¤Syntax error (two terms in a row?) at /tmp/YxrrSAgmhv line 1:ā¤------> say "list" if Range isa Listā¤ expecting any of:ā¤ infix or meta-infixā¤ infix stopperā¤ standard stopperā¤ statement_mod_loopā¤ | 19:01 | |
..terminatorā¤00:03 33mā¤Ā» | |||
s1n | well that was stupid | ||
if i did Range isa List, is that true? | |||
TimToady | std is a parser, it doesn't know semantics | ||
s1n | TimToady: yeah i realized that after-the-fact | ||
TimToady | though it knows that "isa" isn't real | ||
perl6: say Range ~~ List | 19:02 | ||
p6eval | rakudo 13f677: OUTPUTĀ«0ā¤Ā» | ||
..pugs: OUTPUTĀ«*** No such subroutine: "&Range"ā¤ at /tmp/GFP5TD9rn0 line 1, column 5 - line 2, column 1ā¤Ā» | |||
..elf 25233: OUTPUTĀ«ā¤Ā» | |||
s1n | okay, i'm asking you, does Range isa List evaluate to true? | ||
despite what the current impls say | |||
TimToady | no, it would be a does | ||
s1n | does list? i didn't know List was a role | 19:03 | |
TimToady | pretty much everything is a role as well as a class | ||
most of the basic types are punned | |||
s1n | so Range does List is valid, not just Range does Positional? | ||
TimToady | certainly, you can iterate over a range without using indexes | 19:04 | |
s1n | hmm, you can iterate over positionals without indices, correct? | 19:05 | |
TimToady | not really | 19:06 | |
iteration over an Array is non-destructive | |||
so something has to keep track of the current index | |||
even if that's hidden in an anonymous spawned iterator | 19:07 | ||
s1n | TimToady: can you give me an example of what you expect Range iterator to look like? | ||
(pseudocode or not example usage) | 19:08 | ||
TimToady | perl6: for 1..10 { .say } | 19:09 | |
p6eval | elf 25233: OUTPUTĀ«Use of uninitialized value in concatenation (.) or string at ./elf_h line 3849.ā¤syntax error at (eval 120) line 4, near "{->say"ā¤ at ./elf_h line 4346ā¤Ā» | ||
..pugs, rakudo 13f677: OUTPUTĀ«1ā¤2ā¤3ā¤4ā¤5ā¤6ā¤7ā¤8ā¤9ā¤10ā¤Ā» | |||
TimToady | biab & | 19:10 | |
19:18
PantheraPardus left
19:29
jhuni left
19:37
icwiener left
19:39
mberends_ joined
19:40
mberends_ left
19:44
DemoFreak joined
20:01
DemoPhreak left
20:07
alester left
|
|||
pugs_svn | r25234 | hinrik++ | [util/perl6.vim] adjust which Pod blocks allow implicit code, this makes table blocks highlight correctly | 20:12 | |
20:12
alester joined
20:13
aindilis joined,
rindolf left
|
|||
pugs_svn | r25235 | hinrik++ | [S26] table the table of config options so it lines up correctly | 20:17 | |
literal | where is the CSS that's used for the synopses in perlcabal.org/syn ? | 20:20 | |
it makes tables (currently only used by S26 I think) look less readable than unstyled Pod HTML | 20:21 | ||
i.e. big font size, too much space between lines, link-colored text | 20:22 | ||
alester | Hey, talking about what we're putting on rakudo.org | ||
pmichaud and I are brainstorming content. | |||
please look at xoa.petdance.com/What_we_need_on_rakudo.org and comment | 20:23 | ||
literal | a live REPL like I saw on some Ruby page a while back | ||
but I guess you'd need to make a REPL first... | 20:24 | ||
alester | nice, thanks. | ||
that's sweet | |||
I'd love to see that. | |||
literal | thats the one: tryruby.hobix.com/ | ||
really neat | |||
alester | yes, thanks. | ||
pmichaud | pugs had one of those also | ||
alester | what else? | ||
lambdabot | pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
alester | Can we get pictures of hot women in teeny tank tops saying "Rakudo"? | 20:25 | |
I mean, if we want uptake... | |||
literal | short videos of hot Japanese women saying "Rakudo" | 20:26 | |
alester | stealing from ruby.org | ||
* Try Ruby! (in your browser) | |||
* Ruby in Twenty Minutes | |||
* Ruby from Other Languages | |||
I think that would be "purring" Rakudo. | 20:27 | ||
literal | haha | ||
20:29
FurnaceBoy_ joined
20:33
perl7 joined
|
|||
Tene | alester: serious request? | 20:34 | |
alester | yes | ||
well, wait | |||
is WHAT a serious request? | |||
Tene | Video of hot women in little clothing saying "rakudo" | ||
alester | I'm not actually looking for the sexist pig approach | ||
No, that's not serious. | |||
Tene | Okay. nm, then. | 20:35 | |
alester | haha | ||
Don't worry. | |||
literal | Tene: why, do you have some? | 20:36 | |
alester | I think Tene is ALWYAS in teeny tank tops that say "Rakudo" | 20:37 | |
Cafepress here we come! | |||
20:38
FurnaceBoy left
|
|||
Tene | Oh, the shirt has "rakudo" printed on it. | 20:40 | |
I thought you meant "video of a woman speaking the word 'rakudo'" | 20:41 | ||
alester | there was that too | ||
20:57
IllvilJa joined,
alester left
21:01
lisppaste3 left
21:02
perl7 left
21:03
alester joined
21:05
mberends left,
DemoFreak left
21:06
lisppaste3 joined,
DemoFreak joined
21:10
idemal left
21:14
idemal joined
21:24
bacek_ joined,
bacek left
21:30
M_o_C left
21:33
justatheory joined
22:17
szabgab joined
22:23
meppl left
22:33
justatheory left
|
|||
szabgab | seems to be lots of silence here, | 22:34 | |
I've just uploaded a package to CPAN containing a Perl6 class | 22:35 | ||
all would be nice but PAUSE did not index it, does anyone know what does PAUSE need for indexing ? Does it try to load the module in memory or is it looking for the package declaration ? | 22:36 | ||
22:37
aindilis left
|
|||
pugs_svn | r25236 | hinrik++ | [util/perl6.vim] highlight semicolon separators in E<> Pod formatting codes | 22:41 | |
22:44
nihiliad left,
nihiliad joined
23:02
dalek joined
23:07
Limbic_Region joined
23:11
_shinobicl_ joined
23:12
braceta joined,
braceta left
23:13
braceta joined
23:16
_shinobicl_ is now known as shinobi,
shinobi is now known as shinobi_cl
|
|||
pugs_svn | r25237 | hinrik++ | [util/perl6.vim] only allow implicit code in =pod/=item/=nested and semantic blocks | 23:19 | |
23:26
FurnaceBoy_ left
23:28
shinobi_cl left
23:36
M_o_C joined
23:37
nihiliad left
23:41
justatheory joined
23:47
shinobi_cl joined
23:51
alester left
|
|||
pugs_svn | r25238 | hinrik++ | [util/perl6.vim] match Pod block identifiers more accurately, don't allow formatting codes to span past the enclosing block | 23:52 |