»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! Set by sorear on 4 February 2011. |
|||
00:07
tokuhiro_ joined
00:09
tokuhiro_ left
00:10
tokuhiro_ joined
00:14
tokuhiro_ left
00:18
kurahaupo left
00:19
kurahaupo joined
00:47
kevouze joined
00:58
anuby joined
|
|||
dalek | ecza: 0d2a99e | (Solomon Foster)++ | lib/ (2 files): First stab at $*CUSTOM-LIB. |
01:01 | |
01:01
natisfto joined
|
|||
natisfto | good night....perl6 | 01:02 | |
sorear | hello natisfto. welcome? | ||
natisfto | rn: Str.^methods.say | 01:03 | |
01:03
am0c joined
|
|||
p6eval | niecza v22-12-g960f328: OUTPUT«Unhandled exception: Unable to resolve method methods in type ClassHOW at /tmp/SVYf7VL6OE line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4211 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4212 (module-CORE @ 579)  at… | 01:03 | |
..rakudo 8a07b8: OUTPUT«BUILD Int Num chomp chop substr pred succ match ords lines samecase samespace trim-leading trim-trailing trim words encode capitalize wordcase trans indent codes tclc path WHICH Bool Str ACCEPTS Numeric gist perl comb subst split» | |||
colomon | sorear: that was a very rough stab at doing $*CUSTOM-LIB -- I'm not at all convinced that's the right directory to use. | 01:04 | |
sorear | colomon: do you want me to look at it? note, I have no clue what $*CUSTOM-LIB is other than apparently involving pandas | 01:06 | |
colomon | It's moritz's attempt to not make every install of a perl6 compiler use ~/.perl6/lib for libraries. | 01:07 | |
natisfto | phenny: tell moritz++ I found something like index,rindex not in the Str's method lists .phenny++ | ||
phenny | natisfto: I'll pass that on when moritz++ is around. | ||
colomon | the idea being that now the directory for libraries will be $*CUSTOM-LIB/lib | 01:08 | |
01:08
natisfto left
|
|||
colomon | I didn't add it to the include path (hmmm....) but I did implement $*CUSTOM-LIB using Environment.SpecialFolder.ApplicationData | 01:09 | |
01:09
fgomez joined
|
|||
colomon | It came out to /Users/colomon/.config/niecza on my MacBook Pro, which seems not perfect, but probably workable. | 01:09 | |
it seems like a good first step to getting panda working with both compilers. | 01:11 | ||
I think moritz is trying to make it possible to install rakudo and rakudo star side-by-side. | |||
doy | fixed directory names in the home directory feels like it misses the point somewhat | 01:14 | |
01:14
hypolin joined
|
|||
sorear | colomon: um, how is $*CUSTOM-LIB supposed to be set? | 01:19 | |
colomon | ..... that's a good question | ||
01:20
thou joined
|
|||
colomon | Wait, I'm not sure what you mean by that. Set initially, or modified later? | 01:22 | |
01:22
kevouze left
01:24
ComWT joined
|
|||
sorear | colomon: both | 01:29 | |
colomon | set initially works -- I just did it more or less the same way you did $*EXECUTABLE_NAME | 01:30 | |
and like $*EXECUTABLE_NAME, right now giving it a new value doesn't work. | |||
(or at least, I can't figure out how to do either) | 01:31 | ||
pmichaud | ~/.perl6/lib needs to die. | 01:36 | |
at least, it shouldn't be in the path by default. | |||
01:48
am0c left
01:58
kevouze joined
02:06
armitage81 left,
grondilu left
02:07
armitage81 joined
|
|||
armitage81 | hi | 02:08 | |
sorear | hello and welcome armitage81 | 02:16 | |
02:19
raiph joined
02:25
kevouze left
03:08
ponpon left
03:13
xinming joined
03:16
xinming_ left
03:27
raiph left
03:38
armitage81 left
04:00
dayangkun joined
04:03
apejens left
04:05
larks left
04:09
sftp left
04:18
telex left
04:28
kurahaupo left
04:29
kurahaupo joined
04:33
telex joined
04:41
wamba joined
04:45
wamba left
04:56
skids left
04:59
sivoais left
|
|||
masak | good morning, #perl6 | 05:01 | |
05:02
birdwindupbird joined
05:03
sivoais joined
05:05
kevouze joined
05:06
wamba joined
|
|||
sorear | o/ | 05:08 | |
05:18
GlitchMr joined
05:20
aharoni joined
05:23
sftp joined
05:27
hash_table left
|
|||
moritz | \o | 05:27 | |
sorear: the idea is simply that $*CUSTOM-LIB is a directory that depends on the compiler version | |||
and $*CUSTOM-LIB/lib should be in the module search path | |||
where exactly it is doesn't really matter to me | 05:28 | ||
r: say Cool.^methods(:local) | 05:30 | ||
p6eval | rakudo 8a07b8: OUTPUT«abs conj sqrt sign rand sin asin cos acos tan atan atan2 sec asec cosec acosec cotan acotan sinh asinh cosh acosh tanh atanh sech asech cosech acosech cotanh acotanh cis log exp roots log10 unpolar round floor ceiling truncate chars codes fmt substr uc lc tclc ucfi… | ||
moritz | r: say Cool.^methods(:local).grep(/index/) | ||
p6eval | rakudo 8a07b8: OUTPUT«index rindex» | ||
moritz | phenny: tell natisfto index and rindex are defined in Cool, not Str (at least in Rakudo), and .^methods excludes methods from Cool, Any and Mu by default. Use .^methods(:all) if you gotta catch 'em all :-) | 05:31 | |
phenny | moritz: I'll pass that on when natisfto is around. | ||
05:36
arnsholt_ joined,
arnsholt_ left
05:40
birdwind1pbird joined
05:51
kaleem joined
05:52
hash_table joined
05:55
araujo left,
birdwindupbird left
06:00
hash_table left
06:02
kevouze left
06:05
wamba left
06:12
fridim_ left
06:20
GlitchMr left
06:27
dayangkun left
06:39
replore_ joined
07:10
brrt joined
07:13
daxim joined
07:17
kevouze joined
|
|||
kevouze | Hi everyone. I am currently running a survey about Perl community newcomers. Few people from Perl6 took part. | 07:18 | |
Is there anyone here joined Perl within the last 2 years and who would be keen to help out? | |||
tinyurl.com/perlnewcomersurvey | |||
brrt | kevouze: define 'joined' | ||
'learned perl for the first time' or 'started particpating in the perl community' | |||
i fall in the latter, but not in the former category | 07:19 | ||
kevouze | started contributing to Perl sub-projects (like Perl6, Mojo, Dancer...) | ||
sounds like it is your case, right? | 07:20 | ||
brrt | more or less, if parrot counts :-) | 07:23 | |
07:23
kevouze_ joined
|
|||
Su-Shee | what's this survey supposed to accomplish? | 07:23 | |
kevouze_ | it is studying how the experience of a newcomer has an influence on this person becoming a valued sustainable contributor (from community perspective) | 07:24 | |
the dataset will be shared with Perl people, hoping it will be helpful | 07:25 | ||
07:25
kevouze left,
kevouze_ left
07:26
araujo joined,
araujo left,
araujo joined,
kevouze joined
|
|||
kevouze | sorry using webchat.freenode.net/ and I keep being disconnected, not sure why. | 07:26 | |
07:28
birdwindupbird joined
|
|||
Su-Shee | well I would personally be very reluctant to be dubbed a "valued substainable contributor".. I'm not a economic open source resource. | 07:29 | |
also, helpful for what exactly? :) | 07:30 | ||
kevouze | one of the things it is looking out for example is whether your experience as a newcomer as an influence on you becoming a good 'citizen' for the community | ||
so doing all the extra stuff that helps the community | 07:31 | ||
Su-Shee | kevouze: what's a good citizen for the community supposed to be? by whose definition? | ||
and how do you know upfront what helps the community? also, which one of the two? perl6 or perl5? | |||
kevouze | rather the overall PErl community | ||
I have conducted interviews with people from lots of communities asking what makes a person a good community citizen | 07:32 | ||
07:32
flightrecorder joined
|
|||
kevouze | I am checking it out now in a survey, I have explained some of my preliminary results about citizenship in my blog kevincarillo.org if you want to have a look (sorry not advertising my blog here...) | 07:33 | |
Su-Shee | wow, finally we're trying to press even the last hacker into a "mold" of good behavior.. wonderful. | 07:36 | |
07:37
kevouze left
07:38
kevouze joined
|
|||
kevouze | the 'good' here is from the community perspective not in the absolute. For a community to function and sustain, shall behaviors shall be encouraged, the same way there are codes of conduct | 07:40 | |
another example is the harm caused by 'toxic' behaviours to communities | |||
Su-Shee | kevouze: yes. horrible. your blog opens my worst nightmare how open source communities should change.. that's everything I pretty much want to keep out of hacking communities. | 07:41 | |
also, this is all very us-american flavored.. "codes of conduct" and such.. I have nothing but disdain for those.. | 07:43 | ||
kevouze | My personal opinion is that a code of conduct helps for large communities if you do not wants things to go wrong. Like I have said, it is just an opinion. | 07:48 | |
07:48
replore_ left
07:49
birdwindupbird left
|
|||
Su-Shee | but things usally don't go wrong. and comparing "things that go wrong" in numbers with the world outside of open source communities: things going wrong is a pretty rare exception. and what exactly adds a code of conduct to anything which a) isn't legal anyways and b) socially frowned upon and therefore just a question of acting instead of ignoring? | 07:51 | |
07:51
FROGGS joined
|
|||
Su-Shee | all this notion of things going wrong in open source communities.. I don't see it. | 07:51 | |
brrt | or, we're all just nice to each other | ||
maybe a bit passionate about software, but that is part of it | 07:52 | ||
FROGGS | morning | ||
brrt | \o FROGGS | ||
kevouze | I think it is not that easy to make sure a community remains healthy. | 07:53 | |
Su-Shee | kevouze: _your_ very strange notion of "healthy". | ||
kevouze | healthy for instance like new people keeps coming and the community keeps growing, that could be one aspect | 07:54 | |
Su-Shee | kevouze: which would require that it's actually true that the things you're talking about are the things deciding upon new people coming and communities growing.. | 07:55 | |
07:57
kurahaupo left
07:59
hoelzro|away is now known as hoelzro
|
|||
kevouze | Su-Shee, sorry I need to go. But I really would like to continue the conversation, I am always happy to hear about the opinion of people with a lot of experience, I still have to learn a lot. Thanks for sharing your insights :) | 07:59 | |
08:00
kevouze left
08:03
fhelmberger joined
|
|||
moritz | std: use v5; qw}foo} | 08:05 | |
p6eval | std 77327a4: OUTPUT«===SORRY!===Use of a closing delimiter for an opener is reserved at /tmp/UdSzfxLuVi line 1:------> use v5; qw⏏}foo}Parse failedFAILED 00:01 52m» | ||
moritz | not in Perl 5 :-) | ||
08:27
birdwind1pbird left
08:33
SamuraiJack joined
|
|||
mathw | o/ | 08:33 | |
08:40
dakkar joined
08:58
birdwindupbird joined
09:01
daniel-s left
09:04
sqirrel joined
09:05
thou left
09:10
daniel-s joined
|
|||
dalek | rlito: d59adda | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - p5ArrayOfAlias - fix internal indexes |
09:11 | |
09:20
aharoni left
09:24
Grrrr left,
Grrrr joined
09:37
cognominal joined
09:46
cognominal left
09:48
gerhard2 joined
|
|||
brrt | /join #django | 09:58 | |
dammit | |||
sorry | |||
Timbus | a traitor! | 09:59 | |
brrt | haha | ||
09:59
rindolf joined
|
|||
brrt | not my choice though | 09:59 | |
python is hilarious, though, its like they took perl and chipped away all the 'scary' parts | 10:05 | ||
10:06
hypolin left
|
|||
Timbus | it's got a few nice things i guess | 10:08 | |
brrt | its mediocre in every respect | 10:09 | |
its main virtue is being 'better than php' | |||
Timbus | any turing complete language that is not php, gets that stamp of approval | 10:10 | |
Woodi | hallo :) | 10:13 | |
I must disagree... PHP was great invention ! | 10:14 | ||
brrt | Woodi, flame on | 10:16 | |
why was php a great invention | |||
Woodi | becouse ~user can use it without /root for example :) | ||
brrt | which can be done easily in CGI | 10:17 | |
without ever looking at php | 10:18 | ||
Woodi | be real, tell me why PHP win WWW ? | ||
brrt | because: | ||
a): it is really cheap and easy to administer | |||
b): hivemind of web hosters | |||
c): it is really cheap to find developers for | 10:19 | ||
c because of a and b | |||
economics is why php reigns | |||
Timbus | i got told that php had a 'much easier to understand syntax than perl' and i think i pffbrbbppth'ed so hard i propelled myself into low orbit | 10:20 | |
Woodi | I think PHP somehow improved WWW crafting and in that time it was important. I would realy like to know what was exact-name for killer feature... | 10:21 | |
Timbus | embedded templates | ||
serverside includes | |||
10:22
tgt joined
|
|||
brrt | we had serverside includes before php | 10:22 | |
the templates thing, thats pretty important though | |||
i wouldn't say it actually /helped/ the web development 'craft' | |||
Timbus | yes | ||
Woodi | so PHP was just "easy" in use on few lvls... | ||
Timbus | but boy howdy does it suck now | ||
Woodi | human laziness.... #@^^#@!*& | 10:23 | |
brrt | neither where the developers / designers of php craftsmen themselves | ||
10:23
anuby left
10:24
tgt left
|
|||
brrt | i mean, were | 10:26 | |
10:30
kaleem left,
kaleem joined
10:33
colomon_ joined
10:34
colomon left,
colomon_ is now known as colomon
10:36
brrt left
10:50
birdwindupbird left
10:55
kresike joined
|
|||
kresike | hello all you happy perl6 people | 10:55 | |
colomon | o/ | 10:57 | |
10:57
rindolf left
|
|||
masak | kresike! \o/ | 10:59 | |
bbkr | hello | 11:00 | |
kresike | colomon, masak , bbkr o/ | 11:02 | |
masak has a Perl 6 day today | |||
expect some activity. | |||
flussence | yay | 11:03 | |
11:04
gootle left
11:05
VXZ left,
Su-Shee_ joined
|
|||
flussence | oh btw, I found this while you were away :) | 11:06 | |
echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' | perl6 | |||
11:07
brrt joined,
Su-Shee left,
Su-Shee_ is now known as Su-Shee
11:08
brrt left
|
|||
moritz | Segmentation fault (core dumped) | 11:13 | |
flussence | works fine if you omit the \n, though. | ||
masak | has it been RT'd? | 11:15 | |
masak is not up to speed yet | |||
flussence | I've been too busy trying to break rakudo to file bugs :P | 11:16 | |
masak submits rakudobug | 11:17 | ||
flussence | I've got more if you want 'em :) | ||
masak | sure. | ||
flussence | rn: enum First <a>; enum Second <a>; say a.perl | 11:18 | |
p6eval | rakudo 8a07b8: OUTPUT«Second::a» | ||
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'a' (see line 1) at /tmp/Xs7s5vA4EN line 1:------> enum First <a>; enum Second <a>⏏; say a.perlUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.s… | |||
masak | that one is known, methinks. | ||
and RT'd. | |||
flussence | yeah, that one seemed a bit easier to come across... | ||
masak | I know ++moritz would like to fix that one ;) | 11:19 | |
flussence | anyway, I'm going to try actually writing code this week so I'll probably manage to break something :) | ||
moritz | what should happen? | ||
redeclaration error, as niecza does? | |||
flussence | S12:1932 says that error is appropriate | 11:23 | |
rn: enum First <a>; enum Second <a>; say First::a.perl | |||
p6eval | rakudo 8a07b8: OUTPUT«First::a» | ||
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Illegal redeclaration of symbol 'a' (see line 1) at /tmp/Mtg_0Il2_K line 1:------> enum First <a>; enum Second <a>⏏; say First::a.perlUnhandled exception: Check failed at /home/p6eval/niecza/boot/lib… | |||
flussence | it says that should work, though | 11:24 | |
11:27
Guest67453 joined
|
|||
moritz | but how? | 11:28 | |
I mean, enum First <a>; *immediately* creates symbol a | |||
which influences the parsing of the rest of the scope | 11:29 | ||
and then, should the enum Second <a>; delete the existing symbol a? | |||
that strikes me as quite odd | |||
if so, what would enum First <a>; say a; enum Second <a>; do? | |||
parse, and then complain at runtime that there is no a? | |||
or retroactively complain that symbol a was used, and it turned out to be ambiguos? | 11:30 | ||
that all sounds very surreal | |||
flussence | rn: say a; enum Second <a>; | 11:32 | |
p6eval | rakudo 8a07b8: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&a' called (line 1)» | ||
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Illegally post-declared type: 'a' used at line 1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  … | |||
flussence | that seems to answer that; it just isn't declared yet | ||
11:32
birdwindupbird joined
|
|||
flussence | my first guess is it should change the bare «a» to behave like a "!!!" or similar | 11:33 | |
if that's even possible | |||
11:34
gerhard2 left
11:35
Guest67453 left,
wamba joined
|
|||
moritz | sounds dubious | 11:38 | |
moritz wrestles with hard SQL problems | |||
arnsholt | SQL query getting to be three pages long? =) | 11:39 | |
moritz | that's part of the problem | 11:40 | |
well, there are two problems, actually | |||
the first is that we need to store DAGs in a RDBMS | |||
and the second is that we have several legacy tables, which should get a unified interface as "config items" | 11:41 | ||
and we need to store relations between the DAG and config items | |||
so the question is, how to unify several tables to one interface? | |||
11:42
rindolf joined
|
|||
moritz | we could make a mapping table per legacy table, but that leads to explosion of tables | 11:42 | |
or a common mapping table that stores an ID and table name it references, but that doesn't have any referential integrity | |||
or we have a mapping table with a column for each legacy table, and have only one of them non-Null, but that's ugly for writing queries | 11:43 | ||
and so on | |||
mathw | table explosion is usually the only way that maintains referential integrity | 11:44 | |
you can moderate its effects on query-writing with judicious application of views | |||
but the updates will always hurt | |||
moritz | well, views aren't easy either | ||
mathw | so will some of the selects | ||
moritz | because our schema is stored in a custom format | 11:45 | |
from which SQL is generated through a mixture of bash, perl, python and black magic | |||
mathw | we've also been wrestling with DAGs in an RDMS and it's not easy at all | ||
11:45
FROGGS left
|
|||
moritz | and nobody wants to touch the magic, but right now it doesn't support views. Tough luck. | 11:45 | |
mathw | you can easily store a directed graph, but we haven't found a way to sanely enforce the acyclic part | ||
ouch! | |||
we are at least working in raw SQL | 11:46 | ||
moritz | mathw: which model did you use? adjancence list, plus storing the transitive closure? | ||
11:46
brrt joined
|
|||
moritz | or recursive queries for selects? | 11:46 | |
mathw | we haven't actually finalised what we'r edoing yet | ||
11:47
flightrecorder left
|
|||
moritz | www.codeproject.com/Articles/22824/...aphs-DAG-o that's what we'll probably do | 11:47 | |
mathw | my colleague's handling most of it, but we're both so unhappy with the options we've come up with so far that we keep deferring the decision on database format (he's working on a lot of client-side stuff which is largely database agnostic) | ||
moritz | and I have a faint hope that most of the magic in there can be hidden behind triggers | ||
11:48
flightrecorder joined
11:50
FROGGS joined
|
|||
flussence | do you at least get to choose a sane database to put it on? | 11:50 | |
moritz | mysql :( | ||
11:50
am0c_ joined
|
|||
mathw | oooh | 11:50 | |
ouch | |||
moritz | with innodb storage at least | ||
mathw | that's a start at least | ||
one of my jobs is SQL Server, and one is MySQL (recently moved to InnoDB) | 11:51 | ||
guess which one's database i prefer? | |||
moritz | postgres? :-) | ||
mathw | although actually I'd prefer it even if they were both on MySQL because it's designed | ||
and it does sensible things | |||
11:51
tokuhiro_ joined
|
|||
moritz | (I've never used SQL Server, so no idea how good or bad it is) | 11:52 | |
mathw | and I don't have to share it with someone who doesn't think that referential integrity isn't particularly important | ||
SQL Server is far from perfect, but it's capable of some extremely impressive stuff and it makes it very easy to make a very tightly-constrained schema | |||
11:53
flightrecorder left
|
|||
mathw | the only problem we really have with it is that it doesn't support global constraints | 11:53 | |
but then we're not aware of anything else which does either | |||
moritz | what do you mean by "global constraints"? | 11:54 | |
11:54
flightrecorder joined
|
|||
mathw | check constraints which aren't attached to a table | 11:54 | |
flussence | I found out the hard way mysql's fulltext search thing isn't compatible with innodb (and $dayjob needs the former) | ||
mathw | I found that out the other week, fortunately I don't need it | 11:55 | |
Woodi | moritz: I lastly read a little of "Patterns of Enterprise Application Architecture" by M. Fowler and there is Gateway pattern for separating outside resources. It is used to make "object" to talk to resources which have interface which is used on domain lvl. point is to have simple way to get resources and resolve complicate scenarios on domain lvl. and there are similiar patterns: Facade, Adapter, Mediator, Service Stub... but no idea if ... | 11:56 | |
... resolving things on "domain lvl" can help... | |||
mathw | moritz: that transitive closure way of representing a DAG doesn't look fun | 11:57 | |
11:58
wamba left,
wamba joined
|
|||
brrt | flussence: what about postgres, no option? | 11:59 | |
flussence | not on that one project, it has to run on someone else's crappy server :( | ||
moritz | mathw: it doesn't, but it lets you fetch all interesting subgraphs with signle queries, and without recursion | 12:00 | |
mathw: in essence, DAGs are never fun in the DB. Afaict the question is if you want the no-fun to occur at reading or at writing | |||
brrt | do you really need /mysql/ fulltextsearch? or can you maybe get away with using some other fulltext engine? | 12:01 | |
moritz | and I expect to have 0..5 writes a day, and who knows how many reads per minute | ||
mathw | moritz: this is true. You have to accept the limitations of your storage system and then optimise for what you need | ||
flussence | brrt: by "crappy" I really mean it - iirc it's running RHEL5 | 12:02 | |
brrt | moritz: maybe you can get away with the 'smashed tree' | 12:04 | |
my name for a structure a colleaugue invented | |||
in a sense, /all/ relations between an object and the 'parent' objects are stored | 12:05 | ||
so, if I have object A, which 'lives under' object B, and C lives under A | |||
then B is connected to A | |||
C is connected to A | 12:06 | ||
moritz | brrt: you mean there's a row for every path through the graph? | ||
brrt | but B is also connected to C | ||
yes | |||
that is exactly what i mean :-) | |||
moritz | brrt: then your colleauge has reivented the transitive closure :-) | ||
brrt | i did not know that term | ||
my former manager, on the other hand, has forbidden it on the condition of ENOUNDERSTAND | 12:07 | ||
moritz | well, it's a bit of waterbed here | ||
flussence | brrt: I get that excuse a lot :( | 12:08 | |
moritz | you can make the schema easier, and make it easier to write | ||
but then selects perform like snails | |||
mathw | ENOUNDERSTAND is a bad reason to forbid something | 12:09 | |
Woodi | moritz: use LDAP for mainly-read things :) | ||
mathw | although if only one person understands something clever, that is a problem | ||
brrt | well, eventually, i was the only one because the others all left | 12:10 | |
mathw | ah well you can't always plan for the future :) | 12:11 | |
moritz | Woodi: good idea, if it weren't for the fact that all the other data is already stored in mysql | ||
Woodi | moritz: looks that architecture need change or something in low-lvl need to be aware of "structure" you use... | 12:13 | |
usually first cure is done by bigger hardware :) | 12:14 | ||
SSD or something ? | |||
moritz chuckles softly at "architecture need change" | |||
Woodi | so it takes time... or patience :) | 12:15 | |
if things go serious you will probably have new co-worker :) | 12:16 | ||
moritz | my coworkers are fine | 12:17 | |
but the code isn't, in parts | |||
the first commits are from 1997 | 12:18 | ||
and some of that age shows | |||
12:18
tokuhiro_ left,
GlitchMr joined
12:19
tokuhiro_ joined
|
|||
Woodi | err... I mean: additional :) | 12:21 | |
12:21
am0c_ left
|
|||
Woodi | just trying to think like manager can be trying to resolve things... | 12:21 | |
12:23
tokuhiro_ left
|
|||
mathw | ah old codebases | 12:24 | |
we had that at my previous job | |||
not a great deal of fun working with some of it | |||
although the overall concept was pretty clever, it hadn't been maintained very cleanly over the years | |||
masak | mathw: enforcing the acyclic part shouldn't be that difficult. just mandate that children be younger than parents. | 12:25 | |
that's how Git does it. | |||
mathw | masak: what if your data has no concept of 'age' | ||
masak | hm :) | ||
mathw | yes, it would be great if we could do that | ||
masak | actually, Git doesn't need the concept of 'age' here either. | 12:26 | |
mathw | Git has parent pointers | ||
masak | it just considers objects immutable once created. | ||
so old objects can never be made to refer to newer ones. | |||
mathw | and everything gets created in temporal order | ||
because git inherently is based around time | |||
masak | eh? | ||
mathw | well, kind of | ||
more like sequences | 12:27 | ||
this, then this, then this | |||
masak | actually, with rebasing and stuff, you can get things to come wildly out of (commit) order. | ||
mathw | well, cheating's useful sometimes :) | ||
masak | my point is that I don't really see what you mean. | ||
mathw | that's okay, neither do I | ||
masak | you lost me at "inherently is based around time". | 12:28 | |
mathw | I may not hve drunk enough tea yet today | ||
masak | up to that I agreed. :) | ||
12:31
fridim_ joined
|
|||
masak saw concatenative.org/wiki/view/Exotic%...Structures the other day and thought of #perl6 | 12:33 | ||
moritz | courses.csail.mit.edu/6.851/spring12/lectures/ is currently high on reddit under the headline "Actually Exotic Data Structures" | 12:36 | |
brrt | grr, zero pointer derefs | ||
12:36
replore joined
|
|||
tadzik | hello #perl6 | 12:41 | |
brrt | \o tadzik | ||
masak | looks like a nice course. | 12:42 | |
tadzik! \o/ | |||
tadzik | \o/ | ||
mathw | hi tadzik | ||
tadzik | hello hello | ||
GlitchMr | github.com/rakudo/rakudo/commit/df...3df18dbaae | 12:46 | |
:-( | |||
What if somebody doesn't have access to Rakudo install directory? | |||
What about `~/.perl6/lib/2012.09.1-35-g8a07b84` or something instead? | 12:48 | ||
Also, glitchmr.github.com/ | 12:51 | ||
I know I'm late... very late | |||
12:54
PacoAir joined
|
|||
brrt | moritz: that is a nice link | 12:56 | |
thanks | |||
12:56
PacoAir left,
PacoAir joined
12:57
benabik left,
wamba left
12:59
hash_table joined
13:00
sirrobert joined,
rindolf left
13:02
fridim_ left
13:04
Psyche^ joined
13:05
Patterner left,
Psyche^ is now known as Patterner
|
|||
moritz | GlitchMr: I thought about that too, maybe we just need two such locations | 13:06 | |
though perl 5 took years to get a decent solution for that | 13:09 | ||
GlitchMr: it would be ~/.perl6/2012.09.1-35-g8a07b84/lib, because if you have separate lib dirs, you also want separate bin/ and panda/ dirs | |||
13:19
replore left
13:20
replore__ joined
13:26
replore__ left
13:31
replore joined
13:34
wamba joined
13:35
kaare_ joined
13:38
wamba left,
wamba joined,
ponbiki joined
|
|||
[Coke] | moritz: thanks for applying that patch. had meant to get to it over the weekend, glad to see you took care of it (and also fixing my test.) | 13:39 | |
phenny | [Coke]: 14 Oct 15:41Z <pmichaud> tell [Coke] RT #68854 closed, thanks! | ||
13:41
wamba left,
wamba joined
13:48
hash_table left
13:51
wamba left
13:52
kaleem_ joined
|
|||
masak | rn: say <<<\>'n'>> | 13:53 | |
p6eval | niecza v22-13-g0d2a99e: OUTPUT«<>'n'» | ||
..rakudo 8a07b8: OUTPUT«===SORRY!===Missing << or >>at /tmp/rgRs_yIuEd:1» | |||
13:53
am0c joined
|
|||
masak | (this, and following, are from diakopter-in-the-backlog) | 13:54 | |
masak submits rakudobug | |||
13:55
kaleem left
|
|||
masak | motivation: I think Niecza has it right here. thus, Rakudo has it wrong. | 13:55 | |
rn: say <<<a>>> | |||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Bogus term at /tmp/c7dJpiIdzl line 1 (EOF):------> say <<<a>>>⏏<EOL>Parse failed» | ||
..rakudo 8a07b8: OUTPUT«a» | |||
masak | again, I side with Niecza. | 13:58 | |
13:58
sqirrel left
|
|||
masak | rn: say <<'m'<\>'n'>> | 13:58 | |
p6eval | rakudo 8a07b8: OUTPUT«'m'<\>'n'» | ||
..niecza v22-13-g0d2a99e: OUTPUT«'m'<>'n'» | |||
masak | rn: say <'m'<\>'n'> | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Preceding context expects a term, but found infix < instead at /tmp/LNKI9iWAd2 line 1:------> say ⏏<'m'<\>'n'>Parse failed» | ||
..rakudo 8a07b8: OUTPUT«'m'<>'n'» | |||
masak decides to include these discrepancies, also reported by diakopter++, in the bug report | 13:59 | ||
r: []=5; say "alive" | 14:02 | ||
p6eval | rakudo 8a07b8: OUTPUT«alive» | ||
masak submits rakudobug | |||
14:02
Shozan is now known as SHODAN,
REPLeffect left
|
|||
masak | r: [1, 2, 3] = 5; say "alive" | 14:02 | |
p6eval | rakudo 8a07b8: OUTPUT«alive» | ||
14:03
stopbit joined
|
|||
masak | r: say ([1, 2, 3] = 5) | 14:03 | |
p6eval | rakudo 8a07b8: OUTPUT«5» | ||
masak | well, that has a certain logic to it :P | ||
still, that assignment shouldn't be legal, methinks. | |||
14:05
flightrecorder left
|
|||
masak | rn: say(|(|([4]))) | 14:05 | |
p6eval | niecza v22-13-g0d2a99e: OUTPUT«4» | ||
..rakudo 8a07b8: OUTPUT«===SORRY!===CHECK FAILED:Undefined routine '&prefix:<|>' called (line 1)» | |||
14:05
flightrecorder joined
|
|||
masak submits rakudobug | 14:05 | ||
14:06
FROGGS left,
aloha left
|
|||
masak | diakopter: I agree that it's frustrating that Rakudo and Niecza are mutually inconsistent wrt 1%0 and 1/0; but I don't know what to submit it as. | 14:08 | |
14:08
skids joined
|
|||
masak | r: class A { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say B.new; say "alive" | 14:09 | |
p6eval | rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B' in block at /tmp/xEQQiNkcSK:1» | ||
masak | r: class A { ... }; class B is A { has A $.foo }; say B.new; say "alive" | ||
p6eval | rakudo 8a07b8: OUTPUT«===SORRY!===The following packages were stubbed but not defined: Aat /tmp/gyZD_JZwzJ:1» | ||
masak | oh, 'course. | 14:10 | |
r: class A { ... }; class B is A { has A $.foo }; class A {}; say B.new; say "alive" | |||
p6eval | rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B' in block at /tmp/h_oHOfXFU4:1» | ||
masak submits rakudobug | |||
r: class A { ... }; class B is A {}; class A {}; say B.new; say "alive" | |||
p6eval | rakudo 8a07b8: OUTPUT«No such method 'new' for invocant of type 'B' in block at /tmp/Wm423F0foa:1» | ||
masak | r: class A { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say A.new.bar | 14:12 | |
p6eval | rakudo 8a07b8: OUTPUT«No such method 'gist' for invocant of type 'B' in sub say at src/gen/CORE.setting:7268 in block at /tmp/mYtOY6NtP7:1» | ||
masak | r: class A { ... }; class B is A {}; class A { has B $.bar }; say A.new.bar | ||
p6eval | rakudo 8a07b8: OUTPUT«No such method 'gist' for invocant of type 'B' in sub say at src/gen/CORE.setting:7268 in block at /tmp/bmZhXA9bOo:1» | ||
masak | something tells me that diakopter was on his way to do even *more* depraved things with cyclic object dependencies, but found these bugs on the way. :P | 14:13 | |
diakopter++ | |||
moritz | I don't think you should be able to inherit from a class that's only stubbed | ||
the proper way is to stub the subclass | |||
masak | I agree that the problem we're seeing here stems from deriving from the stubbed class. | 14:14 | |
I'm not yet convinced it shouldn't be allowed. | |||
oh, TimToady++ has a fix in the backlog: | 14:16 | ||
r: class A is Any { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say A.new.bar | |||
p6eval | rakudo 8a07b8: OUTPUT«B()» | ||
masak includes this in the ticket | |||
r: class A is Any { ... }; class B is A { has A $.foo }; class A { has B $.bar }; say (A.new.bar).HOW | 14:17 | ||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/w0QS7k58Le:1» | ||
masak | whee | ||
r: class A is Any { ... }; class B is A {}; class A { has B $.bar }; say (A.new.bar).HOW | |||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/b6ufuYbWMw:1» | ||
masak | r: class A { ... }; class B is A {}; class A { has B $.bar }; say (A.new.bar).HOW | 14:18 | |
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/d8WIWX96Cv:1» | ||
masak | r: class A { ... }; class B is A {}; class A { has $.bar }; say (A.new.bar).HOW | ||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/8Q2Pr3KjrJ:1» | ||
masak submits rakudobug | |||
r: class A { has $.bar }; say (A.new.bar).HOW | |||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/t83Bga8Tk2:1» | ||
masak | o.O | ||
moritz | masak: the subclass is composed at the time we parse its } | 14:19 | |
masak | r: say (class { has $.bar }).new.bar.HOW | ||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/YB9mypNBQ7:1» | ||
masak | r: say (class { has $.x }).new.x.HOW | ||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/E5UVkLlGyW:1» | ||
masak | r: say (class { has $.x }).x.HOW | ||
p6eval | rakudo 8a07b8: OUTPUT«Cannot look up attributes in a type object in method x at src/gen/CORE.setting:1606 in block at /tmp/CehyhmdJRy:1» | ||
14:19
FROGGS joined
|
|||
moritz | masak: so if we allow deriving from stubbed classes, the derived classes won't get any of the behavior of the superclass, which kinda defeats the purpose of the exercise | 14:20 | |
masak | agree so far. | ||
masak was going to say "though I'm not the language designer", but he's not so sure that's true in an effort like Perl 6 | 14:21 | ||
well, apart from the "the", which is clearly not true :) | |||
14:21
mucker joined
|
|||
sergot | hi! o/ | 14:22 | |
masak | sergocie! \o/ | ||
r: say Rat.^attrs | |||
p6eval | rakudo 8a07b8: OUTPUT«No such method 'attrs' for invocant of type 'Perl6::Metamodel::ClassHOW' in block at /tmp/20T492W3EO:1» | ||
masak | r: say Rat.^attributes | ||
p6eval | rakudo 8a07b8: OUTPUT«$!numerator $!denominator» | ||
sergot | masaku \o/ ! | ||
masak | r: say (1/2).numerator | 14:23 | |
p6eval | rakudo 8a07b8: OUTPUT«1» | ||
masak | r: say (1/2).numerator.HOW | ||
p6eval | rakudo 8a07b8: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/s1DQICF2TV:1» | ||
masak | r: (;) | 14:25 | |
p6eval | rakudo 8a07b8: OUTPUT«===SORRY!===Method 'returns' not found for invocant of class 'Integer'» | ||
masak submits rakudobug | |||
r: say (;:[]) | 14:26 | ||
p6eval | rakudo 8a07b8: OUTPUT«===SORRY!===Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Can only use get_how on a SixModelObject» | ||
masak submits rakudobug | |||
std: say (;:[]) | 14:27 | ||
p6eval | std 77327a4: OUTPUT«ok 00:00 44m» | ||
masak | <tadzik> ▄█▀ █▬█ █ ▀█▀ | 14:30 | |
tadzik | that was me,aye | ||
masak | tadzik: ...and now all blind people reading tha backlog hate you. :P | ||
the* | |||
mucker | tadzik: how did you type that 0_o ? | 14:31 | |
tadzik | power of copypasta | ||
masak | <tadzik> wow, blogs.perl.org on a Mojolicious rampage | 14:33 | |
<__sri> the underlying question is actually quite interesting, too bad it's buried under mojolicious fud | |||
<tadzik> yeah | |||
tadzik | wow, masak on backlog-reading-rampage :) | ||
masak | ...and I missed most of that blog back-and-forth, but I feel that *those three lines* capture all I need to know. | ||
masak hugs #perl6 | 14:34 | ||
14:35
birdwind1pbird joined
|
|||
PerlJam | masak++ | 14:35 | |
masak | moritz: re CUSTOM-LIB -- I'd much rather see it as CUSTOM_LIB. I don't dislike dashes, but I think all-caps names should use them. | 14:36 | |
PerlJam | (after reading a few lines I was about to remind people that communities need care and feeding too, lest they devolve into chaos) | ||
masak | and not just because the one typing them is already holding down the shift key ;) | ||
PerlJam | guten tag everybody | 14:37 | |
masak | PerlJam: oh! I read a statement by Assange today that reminded me of the care and feeding of communities. it was about Wikileaks and Anonymous. | ||
but it made me think of the Perl 6 community. | |||
masak admires sirrobert who is doing cool stuff with Perl 6 for his $dayjob | 14:38 | ||
moritz admires sirrobert too | 14:40 | ||
sirrobert | heh | ||
masak | sirrobert: seems the STORE method at github.com/sirrobert/Semantic-Vers...ing.pm#L22 doesn't clear minor and patch versions if a shorter list was provided. bug? | 14:42 | |
sirrobert | a shorter list? | ||
as in .version = "1.2" ? | 14:43 | ||
masak | moritz: prior art: $*EXECUTABLE_NAME | ||
sirrobert: yeah. | |||
moritz | masak: *nod* | 14:44 | |
masak | sirrobert: if it was 1.4.13 before, it will be 1.2.13 after. | ||
sirrobert | masak: close enough to a bug. I'd call it a feature request =) | ||
masak: ohhhh | |||
masak | sirrobert: bug? | ||
sirrobert | masak: would you want it to go to 1.2.0? | ||
masak | yes! | ||
moritz | masak: I think we need, in total, 4 new paths | ||
masak | sirrobert: or maybe 1.2.<undef>, I dunno. | ||
sirrobert: up to you. | 14:45 | ||
moritz | I'd like to steal perl 5's concept of perl/vendor/site libs, plus one per-user dir (to which the user surely has write permissions) | ||
masak | sirrobert: if it goes to 1.2.0, then prolly minor and patch should be 0 at initialization, too. | ||
sirrobert | masak: yeah... I'll think on that. I definitely get the value, but it could be a surprise | ||
14:45
hash_table joined
|
|||
moritz | so maybe %LIBDIR<perl vendor site user> | 14:45 | |
masak | sirrobert: in fact, given how FETCH works, you prolly want to set those to 0 initially. | 14:46 | |
moritz: sounds good to me. | |||
sirrobert | masak: ok. How does FETCH work that's relevant? | ||
14:46
aloha joined
|
|||
kresike | bye folks | 14:46 | |
14:46
kresike left
|
|||
sirrobert | when I do: panda update | 14:47 | |
I get this error: use of uninitialized variable $key of type Any in string context in method add-project at /home/sirrobert/.perl6/_git/rakudo-star-2012.09/install/lib/parrot/4.6.0/languages/perl6/lib/Panda/Ecosystem.pm:90 | |||
I just recompiled rakudo and it did that. | 14:48 | ||
(rakudo-star) | |||
masak | sirrobert: FETCH expects the values in minor and patch to have been set. if they haven't, it will emit undefinedness warnings. | 14:49 | |
might want to set all three values to 0. | |||
sirrobert | masak: got it | ||
masak: I thought you meant how FETCH was implemented underneath | |||
masak | ah, no. meant your FETCH. | 14:51 | |
sirrobert | masak: fixed. | ||
14:51
cognominal joined
|
|||
masak | sirrobert++ | 14:52 | |
lumi__ | p6: class A { method foo { ... }; }; class B is A { has $.foo; }; my A $a = B.new; $a.foo = 3; say $a.foo | ||
p6eval | rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/F8qK27buwD:1» | ||
..niecza v22-13-g0d2a99e: OUTPUT«3» | |||
masak | ...and I'm caught up on the backlog. | 14:53 | |
14:53
tokuhiro_ joined
|
|||
moritz | r: class A { method foo { !!! } }; class B is A { has $.foo }; my A $a = B.new; $a.foo = 3; say $a.foo | 14:56 | |
p6eval | rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/giNH4C2T0h:1» | ||
14:56
grondilu joined
14:57
birdwindupbird left
|
|||
masak | is it possible to give something a custom ClassHOW without using modules? | 14:57 | |
moritz | r: class A { method foo { !!! } }; class B is A { has $.foo }; my A $a = B.new(foo => 5); say $a.foo | ||
p6eval | rakudo 8a07b8: OUTPUT«5» | ||
moritz | masak: I'm sure it is, if you know the hooks :-) | 14:58 | |
grondilu | what exactly does $*CUSTOM-LIB? I don't see it documented in specs. Is it the same as PERL6LIB? | 14:59 | |
14:59
REPLeffect joined
|
|||
lumi__ | p6: class A { has $!x; method foo is rw { return-rw $!x; }; }; class B is A { has $.foo; }; my A $a = B.new; $a.foo = 3; say $a.foo | 15:01 | |
p6eval | rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/CeRh3HrmyN:1» | ||
..niecza v22-13-g0d2a99e: OUTPUT«3» | |||
masak | moritz: I don't know the hooks :/ | ||
lumi__: yeah, but you're *overriding* the .foo method by giving $!foo in B an accessor... | 15:02 | ||
15:02
am0c left
|
|||
masak | lumi__: I'm with Rakudo, not Niecza, on this one. | 15:02 | |
n: class A { has $.x }; given A.new { .x = 5; say .x } | 15:03 | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«5» | ||
masak | Niecza doesn't seem to make attributes readonly at all. | ||
lumi__ | masak: But even predeclaring it as rw doesn't help | ||
masak | show it in code, please? | 15:05 | |
sirrobert | the ecosystem module right before Semantic::Versioning (SSL, by grondilu) has a source-url of [email@hidden.address] is that legit? | ||
(trying to track down a panda error) | |||
masak | r: class A { has $.x is rw }; given A.new { .x = 5; say .x } | 15:06 | |
p6eval | rakudo 8a07b8: OUTPUT«5» | ||
masak | r: class A { has $.x }; given A.new { .x = 5; say .x } | ||
p6eval | rakudo 8a07b8: OUTPUT«Cannot assign to a readonly variable or a value in block at /tmp/VJmSwokbYJ:1» | ||
masak | sirrobert: probably not legit. | ||
sirrobert | the rest of the source-urls in the META.list use "git://github.com..." | ||
is it kosher for me to change that in the META.list file? | |||
don't want to step on toes. | |||
masak | sirrobert: yes. | ||
sirrobert | masak: ok, thanks | ||
masak | go right ahead. | ||
I'll vouch for you, if needed, which it won't :P | 15:07 | ||
won't be* | |||
dalek | osystem: cdab4f5 | (Sir Robert Burbridge)++ | META.list: removed SSL to try to fix a panda error |
15:08 | |
sirrobert | thanks. Removed that line temporarily and will check if that fixes the issue. | 15:09 | |
lumi__ | masak: Sorry, my mistake, I hadn't realized attributes were readonly | ||
masak | lumi__: that's how it looked from your evals. ;) | 15:10 | |
sirrobert: or you could make the obvious transformation to the kosher kind of URI... | |||
lumi__ | Although that means that rw-ness isn't kept when overriding, which is surprising | 15:11 | |
masak | eh? | ||
you're defining a new attribute. | |||
lumi__ | masak: I thought the accessor for the attribute overrides the method? | 15:12 | |
15:12
FROGGS left
|
|||
masak | correct. | 15:12 | |
15:12
flightrecorder left
|
|||
lumi__ | So if the method is rw, and the accessor isn't, that's not keeping its contract | 15:12 | |
15:13
bluescreen10 joined
|
|||
masak | I assumed your confusion stemmed from thinking in terms of contracts. | 15:14 | |
you're right; that's not keeping its contract. | |||
in Perl, keeping contracts is up to you, the programmer. | |||
the compiler won't call you on it if you don't. | 15:15 | ||
lumi__ | So rwness is a run-time thing | ||
15:16
benabik joined,
PerlJam left
|
|||
masak | that's not what I said. but I guess it is, in a way. | 15:16 | |
lumi__ | So on the flipside, saying "method foo is rw { ... }" is always useless? | ||
15:17
PerlJam joined
|
|||
masak | no, I think it's useful. | 15:17 | |
but I'm not completely up-to-date on that. | |||
maybe only 'return-rw' matters nowadays. | |||
15:17
benabik left
|
|||
masak waves hands a little | 15:17 | ||
15:17
benabik joined
|
|||
lumi__ | "Contract" might be a bit strong, but I would think lvalueness would be part of a method's return type | 15:18 | |
masak | well, Perl doesn't honor any such things across class derivedness relations. | 15:19 | |
r: class A { method foo { return 42 } }; class B is A { method foo { return "OH HAI" } }; A.new.foo; B.new.foo | |||
p6eval | rakudo 8a07b8: ( no output ) | ||
masak | r: class A { method foo { return 42 } }; class B is A { method foo { return "OH HAI" } }; say A.new.foo.^name; say B.new.foo.^name | 15:20 | |
p6eval | rakudo 8a07b8: OUTPUT«IntStr» | ||
masak | between base class and derived class, you can change return type, number of parameters, type of parameters, lvalueness... anything. | ||
15:25
bluescreen10 left
|
|||
moritz | note that type and lvalueness operate on different levels | 15:25 | |
lumi__ | C++11 just added an 'override' keyword, could we have one? | 15:26 | |
Possibly in a module | |||
moritz | what would we need that for? | ||
15:26
birdwind1pbird left
|
|||
lumi__ | moritz: To check that you're keeping a compatible signature | 15:27 | |
moritz | but we don't do that anyway | ||
or do you mean adding 'override' would do that? | |||
15:28
gugod left,
wtw left,
cognominal left
|
|||
lumi__ | moritz: That's what I mean. "method foo is override" to make sure it actually is | 15:28 | |
15:28
grondilu left
15:30
hoelzro is now known as hoelzro|away
|
|||
moritz | lumi__: you can implement that today if you want | 15:30 | |
in user space, for rakudo | |||
15:30
brrt left
|
|||
moritz | this weekend I implemented method delegation. I first write the trait in user space, and only after testing did I copy it into rakudo's source | 15:30 | |
15:31
rindolf joined
15:32
aharoni joined
|
|||
masak | nice! | 15:32 | |
moritz | r: class A { method Num handles <sqrt exp> { 42 } }; say A.sqrt | 15:33 | |
p6eval | rakudo 8a07b8: OUTPUT«6.48074069840786» | ||
moritz | r: class A { method Num handles <sqrt exp> { 42 } }; say A.exp | ||
p6eval | rakudo 8a07b8: OUTPUT«1.7392749415205e+18» | ||
lumi__ | Cool! | 15:34 | |
moritz | and that's just 12 lines of fairly understandable (IMHO) code | 15:35 | |
15:35
cognominal joined
|
|||
moritz | ... in which I've just discvered a minor imperfection :-) | 15:36 | |
cognominal | www.technologyreview.com/news/42954...al-coding/ réinventing AppleScript. Bad ideas never die. | ||
15:37
thou joined
|
|||
moritz | (in user space I used native strings, but in src/core/traits.pm those aren't available yet, so I reverted back to object types. Forgot an unbox along the way) | 15:37 | |
erm, forgot to remove an unbox | |||
15:39
gugod joined,
wtw joined
15:40
bluescreen10 joined
15:41
flightrecorder joined
|
|||
sirrobert | masak: Well, the problem is in his repo; I don't have access to it | 15:42 | |
15:43
cognominal left
|
|||
masak | oh! | 15:44 | |
then deletion sounds like the right thing to do. | |||
people should only publish shared repositories ;) | |||
15:45
FROGGS joined
|
|||
moritz | or maybe just submit a pull request, and ait a bit | 15:47 | |
*wait | |||
or does it completely break panda? | |||
15:47
kurahaupo joined
15:48
rindolf left
|
|||
dalek | kudo/nom: 0937c72 | moritz++ | src/core/traits.pm: remove left-over unbox in method delegation |
15:48 | |
15:53
fgomez left
15:54
cognominal joined
|
|||
sirrobert | moritz: for whatever reason I can't install Semantic::Versioning via panda =) but I can install other modules before that one. Trying to figure out why | 15:55 | |
err... masak | 15:56 | ||
dalek | osystem: 110edde | (Sir Robert Burbridge)++ | META.list: added the SSL module back-- didn't fix panda |
15:59 | |
15:59
cognominal left
16:01
kurahaupo left
16:03
kurahaupo joined
16:08
fgomez joined,
kurahaupo left
16:12
kaleem_ left
16:17
mucker left
16:19
colomon left
16:21
MayDaniel joined
16:34
replore left
16:35
fglock joined,
spider-mario joined
|
|||
TimToady | flussence, moritz: the passages in S12 are trying to indicate that colliding enums poison the short name. It is not the case that S12:1932 says you can just error out on the second declaration. It is not an error to import colliding names that you never use. It's the attempt to use an ambiguous enum 'a' that produces the error, because 'a' was "poisoned". | 16:36 | |
sirrobert | r: multi sub foo (:$GET) { say $GET }; multi sub foo (:$POST) { say $POST }; my $foo = 'GET'; foo :($foo); | 16:37 | |
TimToady | so it is also not sufficient for the second declaration to merely delete 'a'; all that does is privilege the 3rd declaraiton | ||
p6eval | rakudo 0937c7: OUTPUT«Cannot call 'foo'; none of these signatures match::(:GET(:$GET)):(:POST(:$POST)) in block at /tmp/cua0O84NXt:1» | ||
sirrobert | how do I pass in a named argument whose name is the content of the var? | 16:38 | |
TimToady | |($foo => True) or some such | 16:39 | |
sirrobert | hmmm interesting | ||
flatten a parcel | |||
16:39
kurahaupo joined
|
|||
sirrobert | great, thanks | 16:39 | |
TimToady | prefix:<|> is suppose to interpolate into an argument list as if it were really there | ||
sirrobert | righto | 16:40 | |
TimToady | though I think there are some bugs lurking in that code | ||
sirrobert | well, my quick & dirty test worked... I'll see if it's good enough for now | ||
thanks =) | |||
diakopter | I need to write a real fuzzer for Perl 6 | ||
I'm tired of manually permuting | |||
TimToady | but you enjoy it | 16:42 | |
sirrobert | r: my @opt = 1,2,3,4; for 1..@opt.elems { say @options.rotate($_).[0,1] } | 16:43 | |
p6eval | rakudo 0937c7: OUTPUT«===SORRY!===Variable @options is not declaredat /tmp/IVWRkMwkDH:1» | ||
sirrobert | not that you don't know how, but I found something like that convenient =) | ||
fwiw | |||
r: my @opt = 1,2,3,4; for 1..@opt.elems { say @opt.rotate($_).[0,1] } | |||
p6eval | rakudo 0937c7: OUTPUT«2 33 44 11 2» | ||
diakopter | let's see; it needs to be STD-based; it needs to persist progress state across runs | 16:44 | |
16:44
mtk joined
|
|||
diakopter | ideally it has a special interaction with each compiler to avoid startup time | 16:46 | |
16:48
aindilis joined
|
|||
diakopter | TimToady: yes. maybe I'd enjoy it more if I could generate 10x as many. Problems need pointed out. imho, not being aware of problems in a release is worse than being aware, because it multiplies bug-for-bug compatability. At leaset if it's documented as wrong, its behavior doesn't have to be maintained in the future | 16:50 | |
the detriment becomes: maintaining a giant bug queue is very hard | |||
e.g. mono | 16:51 | ||
or chromium | |||
duplicate bugs submitted at an extremely high rate because it's too hard to find them in the database | 16:52 | ||
or in mono's case, a mind-boggling number of arguably bug-for-bug compatability bugs since it's a clone of .Net | 16:53 | ||
identifying unique bugs from a fuzzer is also very hard, of course | |||
TimToady | this is one reason why it has been so important for us to have multiple implementaitons | ||
*tions | |||
you need a fuzzer/minimizer :) | 16:54 | ||
diakopter | golfuzzer | ||
arnsholt | Kind of like QuickCheck =) | 16:55 | |
16:55
dakkar left
|
|||
diakopter | sounds Babylonian | 16:55 | |
arnsholt | QuickCheck? | 16:56 | |
diakopter | golfuzzer | 16:57 | |
arnsholt | Right, that one's more Babylonian | ||
Although Babylonian didn't have a sound f, from memory | |||
(I actually took some classes in Babylonian a few years ago =D) | 16:58 | ||
diakopter | o_O | ||
arnsholt | That was pretty cool. Semitic languages are nifty | ||
17:04
mucker joined
|
|||
arnsholt | diakopter: What kind of things were you thinking about regarding fuzzing, BTW? | 17:04 | |
sirrobert | ok, I think I have a bug here....... | 17:06 | |
r: multi sub foo (:$A) { say "A" }; multi sub foo (:$B) { say "B" }; my $str = 'B'; foo |($str => True); | 17:07 | ||
p6eval | rakudo 0937c7: OUTPUT«B» | ||
sirrobert | r: class M { multi method foo (:$A) { say "A" }; multi method foo (:$B) { say "B" }; } my $str = 'B'; M.new.foo: |($str => True); | ||
p6eval | rakudo 0937c7: OUTPUT«===SORRY!===Confusedat /tmp/yb_XTM6ZBb:1» | ||
sirrobert | r: class M { multi method foo (:$A) { say "A" }; multi method foo (:$B) { say "B" }; }; my $str = 'B'; M.new.foo: |($str => True); | 17:08 | |
p6eval | rakudo 0937c7: OUTPUT«A» | ||
sirrobert | that second one should have printed B as the first one did. | ||
it works for multi subs, but not for multi methods | |||
diakopter | arnsholt: good question. just look for parsing errors to start. things that abort parsing abnormally like NPMCA in rakudo or CLR exception in niecza. I still run across those occasionaly | 17:12 | |
17:13
rindolf joined
|
|||
pmichaud | good afternoon, #perl6 | 17:14 | |
sirrobert | hallo | ||
r: my $foo = "bar"; say "$foo:a"; | 17:15 | ||
p6eval | rakudo 0937c7: OUTPUT«bar» | ||
sirrobert | Why didn't that output "bar:a" | ||
? | |||
arnsholt | diakopter: Automatically generating programs would be cool indeed | ||
rindolf | pmichaud: hi. | 17:16 | |
arnsholt | I've thought about it in the past, but not yet come up with a good idea to implement it | ||
17:16
daxim left
|
|||
diakopter | arnsholt: the fuzzer for that system would just permute the rules; keeping track of which ones it already permuted so it doesn't follow subrules again | 17:16 | |
arnsholt | Yeah, that might work | 17:17 | |
diakopter | it wouldn't need to permute things like character classes or unicode properties | ||
pmichaud | r: my $foo = "bar"; say $foo:a | ||
p6eval | rakudo 0937c7: OUTPUT«bar» | ||
pmichaud | rn: my $foo = "bar"; say $foo:a | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Variable $foo:a is not predeclared at /tmp/qkW5Vs2cnK line 1:------> my $foo = "bar"; say ⏏$foo:aPotential difficulties: $foo is declared but not used at /tmp/qkW5Vs2cnK line 1:------> my … | 17:18 | |
..rakudo 0937c7: OUTPUT«bar» | |||
pmichaud | That's just weird. | ||
diakopter | arnsholt: hmm. I guess that would just test each codepath once. | 17:21 | |
rather, some of the parsing errors are due to strange nestings | 17:22 | ||
pmichaud | sirrobert: I'm guessing the :a is being parsed as part of the variable somehow, or it's acting like some form of postcircumfix | ||
diakopter | r: my $foo = "bar"; say $foo:a.WHAT | ||
p6eval | rakudo 0937c7: OUTPUT«Str()» | ||
diakopter | r: my $foo = "bar"; say $foo:1.WHAT | 17:24 | |
p6eval | rakudo 0937c7: OUTPUT«===SORRY!===Confusedat /tmp/jQcRL7W_g9:1» | ||
pmichaud | rn: my $foo = "bar"; say ($foo):a | 17:25 | |
p6eval | rakudo 0937c7: OUTPUT«===SORRY!===Confusedat /tmp/XQKRGozHcC:1» | ||
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===You can't adverb that at /tmp/vV9iuysJ_q line 1 (EOF):------> my $foo = "bar"; say ($foo):a⏏<EOL>Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5)  … | |||
diakopter | rn: my $foo = "bar"; say $foo:[].WHAT | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Variable $foo:[] is not predeclared at /tmp/iBOuBc3OMv line 1:------> my $foo = "bar"; say ⏏$foo:[].WHATPotential difficulties: $foo is declared but not used at /tmp/iBOuBc3OMv line 1:------> m… | ||
..rakudo 0937c7: OUTPUT«===SORRY!===Variable $foo:<> is not declaredat /tmp/YCgRWEqgt9:1» | |||
17:25
Chillance joined
|
|||
diakopter | eh | 17:26 | |
how are those variable names | |||
std: my $foo = "bar"; say $foo:[].WHAT | 17:27 | ||
p6eval | std 77327a4: OUTPUT«===SORRY!===Variable $foo:[] is not predeclared at /tmp/Bp76nqCoeo line 1:------> my $foo = "bar"; say ⏏$foo:[].WHATCheck failedFAILED 00:00 44m» | ||
pmichaud | <colonpair> appears to be a valid dottyop | 17:29 | |
and colonpair is a valid component of <longname> | 17:30 | ||
diakopter | std: my &[]; | 17:32 | |
p6eval | std 77327a4: OUTPUT«ok 00:00 45m» | ||
17:32
benabik left
17:33
kurahaupo left
|
|||
diakopter | <longname> # XXX line 2461 of STD.pm6 I wonder what the XXX means | 17:34 | |
oh nm | |||
17:37
fgomez left
17:51
fgomez joined
17:54
mucker left
18:00
bluescreen10 left
18:10
obtical joined,
obtical left
18:12
fhelmberger left,
kaleem joined
18:13
bluescreen10 joined
18:30
tokuhiro_ left
18:31
tokuhiro_ joined
18:32
cognominal joined
18:35
tokuhiro_ left
18:36
daxim joined
|
|||
daxim | rakudo: say "1 100 200".comb(' ').perl | 18:36 | |
p6eval | rakudo 0937c7: OUTPUT«Cannot call 'comb'; none of these signatures match::(Str:D : Mu *%_):(Str:D : Regex $pat, $limit = { ... }, :match(:$match), Mu *%_):(Cool : Mu *%_):(Cool : Regex $matcher, $limit = { ... }, Mu *%_) in method comb at src/gen/CORE.setting:2101 in block at … | ||
daxim | how do I split that? | 18:37 | |
sirrobert | r: say "1 100 200".split(' ').perl | ||
p6eval | rakudo 0937c7: OUTPUT«("1", "100", "200").list» | ||
PerlJam | with split? | ||
daxim | but irregular whitespace | 18:38 | |
rakudo: say "1 100 200".split(' ').perl | |||
p6eval | rakudo 0937c7: OUTPUT«("1", " 100", "200").list» | ||
PerlJam | daxim: comb is for describing what you *want*, split is for describing what you want to *throw away* | ||
sirrobert | r: say "1 100 200".split(/\s+/).perl | ||
p6eval | rakudo 0937c7: OUTPUT«("1", "100", "200").list» | ||
PerlJam | r: say "1 100 20 49".comb(/\d+/).perl | 18:39 | |
p6eval | rakudo 0937c7: OUTPUT«("1", "100", "20", "49").list» | ||
daxim | then the docs at doc.perl6.org/routine/split are confusing: it reads as if comb is like split, but automatically removes empty elements | ||
masak | and, somewhat inconsistently, .split accepts strings or regexes; .comb accepts only regexes. | ||
sirrobert | r: say "1ab34ksd593,dk45".comb: /\d+/ | 18:40 | |
p6eval | rakudo 0937c7: OUTPUT«1 34 593 45» | ||
sirrobert | cool | ||
flussence | .comb with a plain string sounds a bit pointless... | ||
PerlJam | flussence: unless you're counting occurences. | 18:41 | |
but, yes ... I tend to agree :) | |||
sirrobert | plain string as opposed to ... ? | ||
flussence | yeah, but then you should probably have a separate function that returns the count instead of $input xx $count | ||
sirrobert | non-string or fancy string? | ||
daxim | then the docs at doc.perl6.org/routine/split are confusing: it reads as if comb is like split, but automatically removes empty elements | ||
oops | |||
flussence | sirrobert: instead of regex | ||
sirrobert | flussence: ohh, comb's argument | 18:42 | |
=) | |||
18:46
cognominal left,
cognominal joined
|
|||
PerlJam sometimes wishes comb was spelt "keep" instead. | 18:47 | ||
daxim | r: my %r; my @val = "1 100 200".split(/\s+/); %r<@val.shift> = @val; say %r.perl; | ||
p6eval | rakudo 0937c7: OUTPUT«("\@val.shift" => ["1", "100", "200"]).hash» | ||
daxim | r: my %r; my @val = "1 100 200".split(/\s+/); %r{@val.shift} = @val; say %r.perl; | ||
p6eval | rakudo 0937c7: OUTPUT«("1" => ["100", "200"]).hash» | ||
daxim | this does not work in rakudo 2012-07 | 18:48 | |
need to upgrade | |||
18:50
Gruber joined
18:51
Grrrr left
18:56
Grrrr joined,
Gruber left
|
|||
masak | r: class M { multi method foo(:$a) { say "a" }; multi method foo(:$b) { say "b" } }; my $str = "b"; M.new.foo: |($str => True) | 18:58 | |
p6eval | rakudo 0937c7: OUTPUT«a» | ||
masak | r: class M { multi method foo(:$a!) { say "a" }; multi method foo(:$b!) { say "b" } }; my $str = "b"; M.new.foo: |($str => True) | ||
p6eval | rakudo 0937c7: OUTPUT«b» | ||
masak | sirrobert: that's your workaround. | ||
named parameters are optional by default, so both multi methods are matching candidates. so they tie-break by calling the first matching one. | 18:59 | ||
daxim | doc.perl6.org/for # needs docs! | 19:00 | |
moritz | daxim: patch it :-) | ||
19:01
drbean left
19:02
drbean joined
19:03
kevouze joined
|
|||
masak | phenny: eo en "for"? | 19:05 | |
phenny | masak: "for" (eo to en, translate.google.com) | ||
masak | (means "away" or "gone") :P | 19:06 | |
daxim | r: my $foo = [200,300]; my %o; %o{567}{sprintf '%s,%s', $foo} = 1; say %o.perl | ||
p6eval | rakudo 0937c7: OUTPUT«Null PMC access in get_string() in sub sprintf at src/gen/CORE.setting:2166 in block at /tmp/ucuWaLS6M_:1» | ||
geekosaur | for-gone conclusion? | ||
daxim | null pmc is a bad low-level crash that should never happen, right? | ||
PerlJam | right | 19:07 | |
daxim | then walk me through rakudobug | ||
19:08
GlitchMr left
|
|||
daxim | rt.perl.org/rt3/Search/Results.htm...%20'perl6' # is that the right queue? | 19:09 | |
masak | daxim: already submitted. | 19:10 | |
daxim | bleh | ||
masak | the problem is '%s,%s' and then just one additional argument. | ||
daxim | I want to write perl6 once every month, I expect to uncover more bugs | ||
masak | r: sprintf '%s%s', 2 | ||
p6eval | rakudo 0937c7: OUTPUT«Null PMC access in get_string() in sub sprintf at src/gen/CORE.setting:2166 in block at /tmp/yFvfHKyz7Z:1» | ||
masak | r: sprintf '%s' | ||
p6eval | rakudo 0937c7: OUTPUT«Null PMC access in get_string() in sub sprintf at src/gen/CORE.setting:2166 in block at /tmp/hD6rRQAeqf:1» | ||
masak | 'night, #perl6 | ||
diakopter | o/ | 19:11 | |
daxim | I need to dereference or flatten that arrayref in order to feed the list to sprintf, how do I do that? | 19:13 | |
diakopter | which arrayref | 19:14 | |
oh, foo | |||
daxim | it comes from a for -> blocky assignment | ||
pointy | |||
diakopter | r: my $foo = [200,300]; my %o; %o{567}{sprintf '%s,%s', |$foo} = 1; say %o.perl | ||
p6eval | rakudo 0937c7: OUTPUT«("567" => {"200,300" => 1}).hash» | ||
daxim | what's | called?= | 19:15 | |
diakopter | flattener | ||
19:21
colomon_s joined
|
|||
colomon_s | O/ | 19:22 | |
19:22
kaleem left
|
|||
colomon_s | What's the smart way to merge Arrays into a single Array? | 19:23 | |
19:26
benabik joined
19:27
SamuraiJack left
|
|||
sorear | o/ | 19:28 | |
diakopter | hi SO | ||
colomon_s | \o | ||
mst | colomon_s: my @both = (@array1,@array2); | 19:30 | |
moritz | or if you have an AoA, my @flat = @AoA.map: *.list | ||
colomon_s | Thank you! | 19:31 | |
19:38
daxim left
19:39
birdwindupbird joined
19:44
cognominal left
19:45
kevouze left
19:51
cognominal joined
19:52
colomon joined
19:53
colomon_s left
19:54
fglock left
19:58
fgomez left
20:02
joelwilsong joined
20:07
replore_ joined,
spider-mario left
20:13
araujo left,
nyuszika7h left,
kaare_ left,
araujo joined
20:14
jaldhar_ joined
20:15
_jaldhar left,
fgomez joined
20:16
nyuszika7h joined
20:18
hash_table left
20:22
replore_ left
20:26
sffd joined
20:27
_edwin joined
|
|||
_edwin | std: constant s = 1,2; say s[0]; | 20:28 | |
p6eval | std 77327a4: OUTPUT«===SORRY!===Missing assignment operator at /tmp/Oa368ACnyu line 1:------> constant s = 1,2; say s[0]⏏; expecting any of: quantifier sigmaybeParse failedFAILED 00:00 44m» | ||
diakopter | std: constant s = 1,2; say s[0]*] | 20:29 | |
p6eval | std 77327a4: OUTPUT«ok 00:00 44m» | ||
diakopter | haha | ||
sffd | rn: say 1.2.1α1 cmp 1.2.1.gamma | ||
p6eval | rakudo 0937c7: OUTPUT«===SORRY!===Confusedat /tmp/qKBc6Or4S9:1» | ||
..niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Number contains two decimal points (missing 'v' for version number?) at /tmp/NM_ny3rabW line 1:------> say 1.2⏏.1α1 cmp 1.2.1.gammaWhitespace is required between alphanumeric tokens at /tmp/NM_ny3rabW l… | |||
diakopter | TimToady: see above for STD weirdness | 20:30 | |
_edwin | is this a bug or am I being stupid using "constant s"? | ||
diakopter | well, it's definitely a bug in STD | ||
since it accepts say s[0]*] | |||
colomon | n: constant s = 1, 2; say s[0] | 20:31 | |
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Missing assignment operator at /tmp/3YGHISuyYb line 1 (EOF):------> constant s = 1, 2; say s[0]⏏<EOL>Parse failed» | ||
colomon | n: constant @s = 1, 2; say @s[0] | ||
[Coke] goes through and plays the URL game (type, in turn, each letter of the alphabet into the browser location bar and write down the URL it autocompletes to. I get one url with "perl6" - for "i") | |||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«1» | ||
diakopter | n: constant s = 1, 2; say s[0]*=] | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«Unhandled exception: Unable to resolve method subst in type Any at /tmp/arKFEVDZx9 line 1 (mainline @ 4)  at /home/p6eval/niecza/lib/CORE.setting line 4212 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4213 (module-CORE @ 579)  at /home/… | ||
diakopter | <snicker> | ||
_edwin | I expected that "constant s = ..." would lexically change the meaning of "s", but it does not seem to be so | 20:32 | |
sffd | rn: say version,new(1.2.1α1) cmp version.new(1.2.1.gamma) | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Number contains two decimal points (missing 'v' for version number?) at /tmp/1u7jyMR865 line 1:------> say version,new(1.2⏏.1α1) cmp version.new(1.2.1.gamma)Whitespace is required between alphanumeric t… | ||
..rakudo 0937c7: OUTPUT«===SORRY!===Unable to parse expression in argument list; couldn't find final ')' at line 2, near ".1\u03b11) cmp "» | |||
_edwin | guess I should really use some unicode characters | 20:33 | |
diakopter | _edwin: nice find (the STD bug) | 20:35 | |
_edwin | is there a bugtracker for STD? | ||
.u italic s | 20:36 | ||
phenny | U+2146 DOUBLE-STRUCK ITALIC SMALL D (ⅆ) | ||
sffd | rn: say (Version.new("1.2.1α1") cmp Version.new("1.2.1β1")).perl | ||
p6eval | niecza v22-13-g0d2a99e: OUTPUT«===SORRY!===Undeclared name: 'Version' used at line 1,1Unhandled exception: Check failed at /home/p6eval/niecza/boot/lib/CORE.setting line 1437 (die @ 5)  at /home/p6eval/niecza/src/STD.pm6 line 1147 (P6.comp_unit @ 37)  at /h… | ||
..rakudo 0937c7: OUTPUT«Order::Increase» | |||
_edwin | .u "italic small s" | ||
phenny | _edwin: Sorry, your input is too long! | ||
_edwin | .u italic small s | ||
phenny | _edwin: Sorry, no results for 'italic small s'. | ||
_edwin | .u 1d460 | 20:38 | |
phenny | _edwin: Sorry, no results for '1d460'. | ||
20:39
sffd left
20:42
kurahaupo joined
|
|||
_edwin | is there a nicer way to do the following that I am missing?: | 20:48 | |
nr: sub little-endian($w, $n, *@v) { (@v X+> ($w X* ^$n)) X% (2 ** $w) }; say little-endian(8, 4, 32766, 65535) | |||
p6eval | rakudo 0937c7, niecza v22-13-g0d2a99e: OUTPUT«254 127 0 0 255 255 0 0» | ||
_edwin | i.e. transform a sequence of Ints to the sequence of their little-endian reprs. of n w-bit words each | 20:50 | |
20:50
flightrecorder left
20:51
flightrecorder joined,
Celelibi_ joined
20:53
Celelibi left
|
|||
jnthn is back from NPW and Stockholm $dayjob task :) | 21:00 | ||
21:00
birdwindupbird left
21:06
skids left
21:08
hash_table joined
21:10
rindolf left
21:13
joelwilsong left,
MayDaniel left
21:19
cognominal left
21:22
swarley joined
|
|||
swarley | Is there a vim syntax file for NQP? | 21:23 | |
21:23
benabik left
|
|||
PerlJam | swarley: Just use the perl 6 vim syntax file. (NQP is a subset of full Perl 6 syntax) | 21:23 | |
swarley | Oh, okay. Cool | 21:24 | |
21:26
cognominal joined
|
|||
swarley | oh also, does anyone know if this is still true | 21:28 | |
# RT #46213 : Because PGE doesn't yet know how to do longest token matching, | |||
# order all tokens in reverse alpha order to avoid a parsing bug. | |||
jnthn | nqp: say('abcd' ~~ /abc|\w+/); | 21:29 | |
p6eval | nqp: OUTPUT«abcd» | ||
jnthn | It does LTM proper now :) | ||
swarley | oh, wonderful | 21:30 | |
tadzik | good evening | 21:31 | |
jnthn | o/ tadzik | 21:32 | |
21:32
thou left
21:38
cognominal left
|
|||
sorear | swarley: PGE has not been used by #perl6 for over two years, so regardless of LTM the comment is wrong :p | 21:38 | |
21:45
cognominal joined
|
|||
tadzik | what's this thing about ssl and panda breakage? | 21:47 | |
sirrobert? | |||
21:50
japhb_ joined
|
|||
japhb_ | jnthn, was there video of your NPW talk(s)? | 21:50 | |
I know you mentioned that one of them was 90% demo ... | |||
jnthn | japhb_: No, there was no videoing at NPW | 21:51 | |
japhb_ | dang | ||
jnthn | japhb_: However, I submitted the same talk to LPW :) | ||
So if it gets accepted there and they video... :) | |||
japhb_ | Heh. Where is LPW? | ||
jnthn | (No idea how likely that is...) | ||
L = London :) | |||
japhb_ | ah, gotcha | 21:52 | |
.oO( Luxembourg ) |
|||
tadzik | . o O ( Lublin ) | ||
jnthn | .oO( Lolland ) |
21:53 | |
tadzik | LOL! Perl Workshop! | ||
cognominal | .oO(Lyon) # for BooK |
||
tadzik | Lion Perl Workshop | 21:54 | |
neh, too tired to actually draw that | |||
Legoland Perl Workshop? | 21:55 | ||
. o O ( That escalated quickly ) | |||
japhb_ | When did Rakudo (and NQP) start doing --gen-parrot and installing into ./install/... ? | 21:56 | |
My eldest starts a Lego Mindstorms class at her school this week. Makes me wonder if the embedded processor is powerful enough to program with a Perl. ;-) | 21:57 | ||
jnthn | japhb_: I think we've had something along those lines back to the previous generation of Rakudo | 21:58 | |
japhb_ is thinking of doing checkout/build/benchmark all released Rakudo's, and graphing the result. But I need to know if/when I need to start worrying about a different build/run process. | |||
jnthn, you mean, all of b Rakudo had --gen-parrot and ./install/ as well? | |||
jnthn | japhb_: I'm not sure about "all of b" | 22:00 | |
japhb_: I know --gen-parrot existed well before nom | |||
japhb_ | k | ||
Well, I can just start working my way back from present, and see when the process fails. :-) | |||
dalek | p: ffd25c9 | jnthn++ | src/QAST/Operations.nqp: Don't allocate result reg for void calls. |
22:02 | |
pmichaud | iirc, --gen-parrot has existed since the rakudo/parrot repo split | ||
japhb_ | pmichaud, ah, cool, thank you. | ||
jnthn | pmichaud: ooh, that long? :) | ||
jnthn can believe it though | 22:03 | ||
It'd make sense to have added it then | |||
pmichaud | jnthn: yes, I'm fairly sure that's when it was added. | ||
it's easy enough to find out... :-) | |||
pmichaud searches github | |||
22:03
Celelibi_ is now known as Celelibi
|
|||
pmichaud | github.com/rakudo/rakudo/blob/2009...nfigure.pl | 22:04 | |
line 12 | |||
jnthn | ah, 115282 and 115284 are fixed by the same patch :) | ||
22:04
stopbit left
|
|||
pmichaud | (LEGO Mindstorms)++ | 22:05 | |
japhb_ | Ah, 2009-02 is the earliest date-tagged Rakudo release, too, it looks like | 22:06 | |
jnthn | r: say ([1, 2, 3] = 5) | ||
p6eval | rakudo 0937c7: OUTPUT«5» | ||
jnthn | r: say ([1, 2, 3] = 5).WHAT | ||
p6eval | rakudo 0937c7: OUTPUT«Int()» | ||
pmichaud | yes, Feb 2009 was the repo split | ||
_edwin | rosettacode.org/wiki/Continued_fraction#Perl_6 | ||
pmichaud | prior versions of rakudo were still part of the parrot repo before that. | ||
jnthn | r: say ([1, 2, 3] = 5).VAR.name | ||
p6eval | rakudo 0937c7: OUTPUT«$x» | ||
jnthn | hmmmm :) | ||
japhb_ | pmichaud, Yeah, I'm going to see if I can parent volunteer for the classes. :-) | 22:07 | |
pmichaud | our Moonbots and FIRST LEGO League teams are hard at work, here. | ||
jnthn | pmichaud: The above issue is down to: | ||
sub circumfix:<[ ]>(*@elems) is rw { my $x = @elems.eager } | |||
pmichaud: Any suggested replacement? :) | 22:08 | ||
22:08
bluescreen10 left
|
|||
pmichaud | jnthn: checking. | 22:08 | |
japhb_ | pmichaud, I think our team (4th grade) doesn't start until the spring here. | 22:09 | |
pmichaud | jnthn: my best suggestion is to change $x to $anon | ||
22:10
cognominal left
|
|||
jnthn | pmichaud: Well, the bug is that the scalar is assignable I think... | 22:10 | |
pmichaud | I'm not sure that's a bug | ||
22:10
popl joined
|
|||
jnthn | r: say ([1, 2, 3] = 5) # this... :) | 22:11 | |
p6eval | rakudo 0937c7: OUTPUT«5» | ||
jnthn | OK | ||
RT#115274, fwiw. | |||
pmichaud | yeah, I saw the ticket earlier in email. | ||
I've been trying to decide if it's really a bug or not. | |||
jnthn doesn't mind which way we go in it, tbh. | |||
pmichaud | I don't know what happens if we get rid of the 'is rw' there. | 22:12 | |
then it would at least be readonly | |||
22:12
_edwin left
|
|||
pmichaud | but it's pretty clear that [...] create a scalar array, and that one is allowed to assign anything to scalars. | 22:12 | |
We *could* declare $x to be my Array $x = @elems.eager | |||
then there would at least be a type mismatch. | 22:13 | ||
japhb_ | pmichaud, What languages are acceptable for Mindstorms programming for team play? | ||
pmichaud, that type mismatch matches my naive expectation, FWIW | |||
my Array $x = @elems.eager, I mean | |||
22:13
benabik joined
|
|||
pmichaud | japhb_: depends on the contest. For FLL, only NXT-G and Labview are accepted, iirc | 22:13 | |
japhb_ | pmichaud, thank you | ||
pmichaud | limiting the choice of language helps level the playing field a fair bit | 22:14 | |
japhb_ | pmichaud, Keeping really advanced programmers from doing stuff that isn't sanely doable with NXT-G and/or Labview? | 22:15 | |
diakopter | there aren't compilers? | ||
pmichaud | oh, NXT-G and Robolab are the languages for FLL | ||
(just re-checked the rules) | |||
japhb_ | diakopter, if Wikipedia is to be believed, there are several compilers for C-like languages among others. | ||
pmichaud | diakopter: sure, there are lots of other languages for the mindstorms (more) | ||
but I think part of the challenge is figuring out how to solve problems within certain constraints | 22:16 | ||
(which is what many engineers actually have to do) | |||
japhb_ | Makes sense. | ||
diakopter | no I meant compilers to the allowed languages | ||
22:16
aharoni left
|
|||
japhb_ | But then there's the Woz method: Separate the true constraints from the assumed constraints, and design to the former. :-) | 22:17 | |
22:17
Khisanth left,
cognominal joined
|
|||
pmichaud | diakopter: the allowed languages are compilers... or I'm not understanding your question | 22:17 | |
japhb_ | Isn't NXT-G a graphical programming environment? | 22:18 | |
jnthn | pmichaud: I think diakopter means, writing the program in something else that is translated to one of the allowed languages. | ||
pmichaud | jnthn: oh, I suppose one could do that... although translating into a graphical programming language seems tough-ish. | ||
jnthn | pmichaud: Probably not quite in the spirit of things either ;) | ||
pmichaud | yes, NXT-G is graphical programming environment | ||
jnthn: well, my stepson has already used NXT-G to create his own interpreter so that he can write programs text-based instead of graphical. :) | 22:19 | ||
that's within the rules, afaict | |||
jnthn | ooh :D | ||
r: say (1/2).numerator | |||
p6eval | rakudo 0937c7: OUTPUT«1» | ||
jnthn | r: say (1/2).numerator.HOW | ||
p6eval | rakudo 0937c7: OUTPUT«Null PMC access in get_bool() in attributes at src/stage2/gen/nqp-mo.pm:1151 in method perl at src/gen/CORE.setting:804 in method gist at src/gen/CORE.setting:798 in sub say at src/gen/CORE.setting:7268 in block at /tmp/dwTPlD76aq:1» | ||
jnthn | ah... | ||
pmichaud | the only problem with the text-based interpreter approach is whether or not he'll be able to explain it properly to the judges so that they realize it's within the rules :) | ||
japhb_ | pmichaud, impressive! How old is your stepson? | 22:20 | |
pmichaud | japhb_: he turns eleven this week. | ||
japhb_ is doubly impressed. | |||
dalek | kudo/nom: 726d2fa | jnthn++ | src/Perl6/Actions.pm: Fix empty statement in semilist handling. |
||
japhb_ | pmichaud, Oh, and happy birthday to him. :-) | 22:21 | |
pmichaud | japhb_: thanks, will let him know that. | ||
he's become quite an amazing programmer over the last year. | 22:22 | ||
He started down the interpreter path a few months ago, and I gave him a hint or two about ways to improve what he was doing, and he responded with "Oh! That's like what you're doing when creating Perl 6." o_O | 22:24 | ||
22:24
bruges_ left
|
|||
jnthn | :D | 22:24 | |
22:24
bruges joined
|
|||
pmichaud | phenny: tell TimToady BTW, one of the girls on our LEGO robotics team really likes Camelia as the mascot. :-) | 22:25 | |
phenny | pmichaud: I'll pass that on when TimToady is around. | ||
pmichaud | (the Perl 6 mascot, that is) | ||
sorear wonders how much perl 6 influence/awareness there is in the lego teams | 22:27 | ||
jnthn | echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' | perl6 | ||
What does -e mean? | |||
Is that \n literal or actually a newline? | |||
pmichaud | on my system, "man echo" says it enables backslash escapes | 22:28 | |
japhb_ | Same here | ||
jnthn | On mine it actually echos the -e :P | ||
22:28
cognominal left
|
|||
pmichaud | pmichaud@kiwi:~$ echo -e 'my \\a = any set <1 2 3>; \n say 1 ~~ a' | 22:28 | |
my \a = any set <1 2 3>; say 1 ~~ a | |||
...and there's a newline after the semi that irssi chomped when I pasted. | 22:29 | ||
jnthn | pmichaud: Does it segv if you pipe it into Rakudo? | ||
pmichaud | I don't seem to have a built copy of rakudo handy. | ||
oh, wait, yes I do. | |||
japhb_ | jnthn, yes it does | ||
pmichaud | yes, it segfaults with 2012.09 for me. | 22:30 | |
japhb_ | > my \a = any set <1 2 3>; | ||
jnthn | wat! | ||
japhb_ | any(1, 2, 3) | ||
> say 1 ~~ a | |||
Segmentation fault | |||
pmichaud | I get what japhb_++ just posted | ||
japhb_ | (That's what I see after doing the pipe) | ||
jnthn | And without the \n it's fine? :S | ||
japhb_ | jnthn, yup, True | ||
(True is the response) | 22:31 | ||
pmichaud | yes, without the \n it's fine... but that's because it goes in as a single line instead of spread out across two input lines | ||
jnthn | oh...it's simulating the REPL... | ||
pmichaud | i.e., it becomes one REPL command instead of two. | ||
japhb_ | indeed | ||
pmichaud | I get the segfault if I enter the commands manually | ||
jnthn | yeah, I was putting it in a file but...seems it needs the REPL to trigger it. | ||
pmichaud | I suspect it has something to do with lexpads. | 22:32 | |
or the REPL's handling of lexpads | |||
jnthn | yeah | ||
pmichaud | anyway, it's a REPL-related thing, doesn't appear to have anything to do with the pipe | ||
jnthn | That needs diddling at some point soonish anyway... | ||
22:32
Chillance left,
skids joined
|
|||
jnthn | ...given that once I get nqpattr killed, the thing it currently relies on will be the last thing left in src/cheats in NQP | 22:33 | |
(and thus the last .pir file, excluding src/stage0/ | |||
) | |||
japhb_ | yay! | ||
dalek | p: 5db85ab | jnthn++ | src/how/NQPClassHOW.pm: Add some default values. There's no NQPMu yet in the MOP classes, so we need to be careful about having these. |
22:34 | |
22:34
Khisanth joined
|
|||
dalek | kudo/nom: 7ddeceb | jnthn++ | tools/build/NQP_REVISION: Get NQP MOP .^attributes fix. |
22:35 | |
jnthn started sketching out JVM porting bits in recent days :) | 22:36 | ||
22:37
PacoAir left
|
|||
japhb_ | jnthn, if you have the mental space for it, a sketch of *abstract* porting requirements would be really valuable. By which I mean, "things NQP and Rakudo need from an underlying VM of *any* sort". Which would help a lot if, say, one wanted to write a VM specifically to run the Rakudo stack .... | 22:39 | |
jnthn | Well, in many senses it's conveniences rather than absolute needs. | 22:49 | |
22:50
bruges left
|
|||
jnthn | It's *nice* if you have coroutine support, but it's *possible* to do transformations to do it on a VM that doesn't provide it natively, for example. | 22:50 | |
22:50
bruges joined
|
|||
japhb_ | jnthn, Sure, but there is "convenience" and there's "without it we're falling back to Turing-completeness", and a big gray range between them. :-) | 22:50 | |
jnthn | japhb_: Yeah, true. | 22:51 | |
22:55
am0c joined
23:00
am0c left
|
|||
jnthn | 'night o/ | 23:07 | |
japhb_ | o/ | 23:09 | |
sorear | o/ | ||
23:12
fridim_ joined
23:20
arlinius joined
23:25
swarley left
23:30
benabik left
23:40
supernovus joined
|
|||
supernovus | Not very exciting, but may be interesting to anyone planning to use Perl 6 for web applications: github.com/supernovus/web-benchmarks | 23:48 | |
23:51
benabik joined
|
|||
japhb_ | supernovus++ # Yay, benchmarks! | 23:55 | |
23:57
cognominal joined
|
|||
supernovus | I am planning to add a whole bunch more, and upping the number of requests per test from 25 to say 100. | 23:58 |