»ö« 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. |
|||
jnthn | sleep & | 00:01 | |
00:17
impious left
00:19
[1]imamelia joined
00:20
imamelia left,
[1]imamelia is now known as imamelia
00:50
awwaiid joined
01:04
noganex joined
01:08
noganex_ left
01:09
orafu joined
01:23
mtk left
01:30
jcrigby left
01:31
mtk joined
01:33
aesop left
01:34
aesop joined
01:40
whiteknight left
01:50
awwaiid left
01:54
cotto left
01:57
awwaiid joined
01:59
Chillance left
|
|||
colomon | ack. I've forgotten where pmichaud's brilliant cards example is again | 02:02 | |
Though I'd even downloaded it.... | |||
I'm also trying to think of a good "there's more than one way to do it" example | 02:10 | ||
TimToady | a number of rosettacode examples show both imperative and functional solutions, such as rosettacode.org/wiki/Van_der_Corput...nce#Perl_6 | 02:17 | |
factorial has four different solutions, I think | |||
02:18
leprevost joined
02:27
bacek left
02:28
pnu left
02:29
pnu joined
02:30
bacek joined
03:12
hudnix left
03:14
newtonrunz left
03:23
Su-Shee_ joined
03:27
Su-Shee left
03:31
beekor left
03:38
takesako__ left
03:39
gabiruh joined
03:42
[particle]1 joined,
[particle] left
03:43
leprevost left,
plobsing left
03:44
plobsing joined
03:49
donri left
03:55
leprevost joined
04:15
Helios` left
04:16
Helios` joined
04:21
robinsmidsrod joined
04:32
Helios` left
04:34
Helios` joined
04:54
nymacro joined
05:04
Mowah joined
05:05
justatheory left
05:14
Mowah left,
Mowah joined
05:33
imamelia left
05:34
imamelia joined
05:53
plobsing left
|
|||
imamelia | There's something to consider for Perl 6...a function that automatically returns output of another program. | 05:57 | |
tylercurtis | imamelia: another Perl 6 program? Or another program in general? | 06:02 | |
In the former case, writing such a function with eval would be trivial. Otherwise, I believe qx/ foo / does that. | 06:03 | ||
06:04
drbean joined
|
|||
imamelia | Something like system() combined with a pipe. | 06:06 | |
06:07
araujo left
|
|||
tylercurtis | imamelia: qx/ foo / runs the command "foo" and produces its output as a string. | 06:07 | |
I'd demonstrate it, but p6eval doesn't allow it. | 06:08 | ||
06:09
drbean left
06:10
drbean joined
06:11
cotto joined
|
|||
imamelia | So you can do my $asdf = qx/$assembler tmpasm.asm tmpasm.bin/;? | 06:14 | |
06:15
drbean left
06:17
silent_h_ joined
|
|||
tylercurtis | Yes. | 06:30 | |
Well, actually, in Perl 6, to interpolate that $assembler, you'd need to do qqx/.../ | 06:31 | ||
06:33
imamelia left
06:34
takadonet left,
imamelia joined
06:47
imamelia is now known as imamelia|Sleep
06:51
imamelia|Sleep left
07:12
rhr left
07:21
molaf joined
07:25
starcoder is now known as scoder,
scoder is now known as starcoder,
starcoder is now known as scoder
07:38
scoder is now known as starcoder
07:39
rhr joined
07:44
wallberg joined
07:48
leprevost left,
leprevost joined
|
|||
moritz | good morning | 07:56 | |
07:56
Moukeddar joined
|
|||
tadzik | good morning | 07:56 | |
08:00
starcoder is now known as iElijah101,
iElijah101 is now known as scoder
08:03
scoder is now known as starcoder
08:04
nymacro left
08:05
silent_h_ left
08:11
Moukeddar left
08:14
leprevost left
08:15
Moukeddar joined,
Moukeddar left,
Moukeddar joined
08:22
leprevost joined,
Su-Shee_ is now known as Su-Shee
08:23
Helios` left
08:24
Moukeddar left
08:25
Helios` joined
08:34
takadonet joined
08:49
arcus joined
09:06
pernatiy left
09:09
masak joined
|
|||
masak | greetings, pandas. | 09:10 | |
09:10
nadim left
09:12
nadim joined
09:20
araujo joined
|
|||
masak | niecza: say "World Domin{.pick}" given <oes us ation> | 09:31 | |
p6eval | niecza v4-76-g7bf5ef9: OUTPUT«Unhandled exception: Unable to resolve method pick in class Parcel at /tmp/6MOD0e3ynU line 1 (MAIN mainline @ 3) at /home/p6eval/niecza/lib/CORE.setting line 1311 (CORE C552_ANON @ 2) at /home/p6eval/niecza/lib/CORE.setting line 1312 (CORE module-CORE @ 39) at | ||
../home/p6eval/… | |||
masak | aww :) | ||
a few of us could probable have a very productive "let's populate the Niecza setting" evening at some point. | 09:32 | ||
s/ble/bly/ | |||
it would also be cool to have a "let's close some of these rakudobugs" evening. there's lots we can do if we pool our resources. | 09:34 | ||
09:42
arcus left
09:44
arcus joined
10:01
wamba left
|
|||
masak | is C<uniq> spec'd anywhere? | 10:05 | |
10:11
arcus left
10:14
wamba joined
10:15
mj41 joined
10:27
whiteknight joined
|
|||
masak | write Ruby, run PHP: fructoselang.org/ | 10:32 | |
this is the first example of someone compiling into PHP that I've seen. I'm simultaneously intrigued and concerned. :) | |||
10:38
ggoebel__ left
10:43
ggoebel__ joined
10:49
drbean joined
10:52
masak left
10:55
drbean left
10:56
drbean joined
11:00
masak joined,
drbean left
11:02
drbean joined
11:03
wamba left
11:06
risou joined
11:07
drbean left
|
|||
jnthn | afternoon, #perl6 | 11:08 | |
11:08
drbean joined
|
|||
mathw | afternoon, jnthn | 11:09 | |
masak | jnthn! \o/ | ||
jnthn | masak! \o/ | 11:10 | |
I survived $consulting-gig night out ;) | |||
masak | glad to hear it ;) | 11:11 | |
11:13
wallberg left,
drbean left
11:14
wamba joined
11:15
drbean joined
11:17
wamba left
11:19
drbean left
|
|||
mathw | :) | 11:19 | |
11:21
drbean joined
11:22
mj41 left,
wamba joined
11:25
Chillance joined,
drbean left
11:27
drbean joined
11:28
otetar joined
11:31
drbean left
11:32
MayDaniel joined
|
|||
tadzik | o/ | 11:33 | |
11:34
drbean joined,
risou left
11:36
risou joined
11:38
Moukeddar joined,
drbean left,
wamba left
11:40
drbean joined,
pernatiy joined
|
|||
masak | \o | 11:42 | |
tadzik | I feel like I got to some new stage of enlightenment | 11:43 | |
11:43
drbean left
|
|||
tadzik | I feel annoyed seeing code with no tests | 11:43 | |
masak | I usually feel a bit sad. | 11:45 | |
it's a lost opportunity. | |||
then again, I still write mid-sized pieces of code without tests, so I shouldn't be too much of a hypocrite. | 11:46 | ||
11:46
drbean joined
|
|||
Moukeddar | haha | 11:48 | |
testing ? | |||
masak | Moukeddar: oh, you'd be surprised. | ||
:) | |||
Moukeddar | i have a very rare adventures with Testing | 11:49 | |
11:51
drbean left
11:52
drbean joined
11:53
Patterner left
|
|||
masak | Moukeddar: automated tests are one of those outgroup-ingroup phenomena. before you've tried them in earnest, they don't seem worth the time. once you're used to them, it feels outright *reckless* to code without them. | 11:55 | |
Moukeddar | masak, maybe :) | ||
11:57
arcus joined,
Psyche^ joined,
Psyche^ is now known as Patterner,
drbean left
|
|||
masak | this happens to me all the time now: I change something -- maybe adding new functionality or what have you -- and a test turns red. I go "oh right", and fix my thinko. | 11:57 | |
but without tests, I would've just coded on, oblivious. | |||
and the cost for fixing that error increases with the square of the distance to the time I wrote the original code. | 11:58 | ||
(or something like that) | |||
11:59
drbean joined
|
|||
Moukeddar | masak, it's quite helpful in big projects :) | 12:00 | |
as i see | |||
masak | anything with an API of some kind. | 12:03 | |
doing tests right also enforces good encapsulation habits, as I've lately discovered. | |||
if you're at the stage where you're saying "I'll just make this attribute/field/method protected so that I can test it", you're still not doing encapsulation right :) | 12:04 | ||
12:05
drbean left
|
|||
Moukeddar | hehe | 12:05 | |
12:05
drbean joined
|
|||
Moukeddar | i still do :) | 12:05 | |
masak | :) | 12:06 | |
Moukeddar | i'm a lousy dev :) | 12:07 | |
masak | I didn't say that. :) we're all on a journey. | 12:08 | |
Moukeddar | you didn't,but i admit it :( | 12:09 | |
12:09
drbean left
|
|||
masak | what I really mean is that if you feel the need to open up things beyond your API in order to do testing, then either (1) you're likely testing the wrong things, or (2) your API isn't expressive enough. | 12:10 | |
I'd be happy to discuss counterexamples. | |||
12:11
drbean joined
|
|||
sunnavy | /win 8 | 12:15 | |
12:16
drbean left
|
|||
Moukeddar | well | 12:16 | |
i'm currently working on a mini engine:) | |||
to render some basic stuff using DX(managed) | |||
does it need testing? | |||
12:18
drbean joined
|
|||
masak | things having to do with IO (or graphics, or persistence, or real-world side effects) are sort of off the beaten track with testing. | 12:21 | |
often it's possible to test them, with special testing frameworks and the like. | |||
but I think the important thing to test is the "side-effect free" core of an application. | 12:22 | ||
12:22
drbean left
|
|||
masak | the brain sitting in the middle, directing things like IO, graphics, and persistence. | 12:22 | |
mathw | this is why one should structure one's applications properly | 12:24 | |
12:24
drbean joined
|
|||
mathw | app logic should not involve any IO or other side effects if at all possible | 12:24 | |
masak | on the cqrs-ddd mailing list, one of the recurring questions is apparently, "how do I inject a repository into my domain objects?" | 12:25 | |
the answer is, of course, "don't do that!" | |||
Moukeddar | i see , then i have to redesign it :( | 12:26 | |
mathw | it feels like a pain to start with | ||
but it's really, really worth it | |||
masak | yeah. | ||
mathw | if your data structures and your app logic are all unit testable, it's soooo good | ||
masak | and soon enough it becomes second nature. | ||
also, structure and separation of concerns is everywhere, if you look for it. | 12:27 | ||
mathw | it helps you get a good API, and then you can replace a data structure wholesale, just stick to the same API and run it through your tests and it should be fine | ||
I have discussions with people at work about this sometimes | |||
Moukeddar | ok then after you mentioned how the internal core shouldn't have any IO , i saw many flaws in my design :( | ||
mathw | Got yelled at the other week | ||
why did you add this method here | |||
it just turns into a check of this | |||
why not just check it over here instead | |||
gargh | |||
yeah sure if you want to couple everything together too tightly | 12:28 | ||
masak | one blog post that I never wrote was about refactoring Druid into something object-oriented. I even made a diagram with color-coded sections of code for various concerns. and then mapped the colors to the old code. it made the old code look terribly scattered and tangled. :) | ||
12:28
drbean left
|
|||
masak | I guess that's a universal law, though: "old code will look like crap from the 20-20 hindsight perspective of a separated concern" | 12:29 | |
12:29
hudnix joined
|
|||
Moukeddar | god , it's painful | 12:29 | |
mathw | yes | ||
Moukeddar | make the pain go away please | ||
mathw | sometimes you can only see the design afterwards | ||
12:30
drbean joined
|
|||
Moukeddar | i need some book about Design | 12:31 | |
masak | Moukeddar: www.amazon.com/Domain-Driven-Design...0321125215 | 12:32 | |
12:32
orafu left
|
|||
Moukeddar | is it general or Perl Specific ? | 12:34 | |
is it about teams ? | |||
12:34
orafu joined
12:35
drbean left
|
|||
masak | general. teams are a part of it, yes. | 12:36 | |
Moukeddar | ouch! | ||
i'm one army man :) | |||
12:36
drbean joined
12:37
otetar left
|
|||
masak | that shouldn't prevent you from getting something out of that book. | 12:37 | |
12:38
icwiener joined
|
|||
Moukeddar | i'll see: ) | 12:38 | |
12:40
sjn left
12:41
drbean left
|
|||
Moukeddar | sounds good :) | 12:41 | |
reviews too :) | 12:42 | ||
12:42
drbean joined
|
|||
Moukeddar | so many books | 12:43 | |
some of them are worthless , just a RIP of some WIKI or documention | 12:44 | ||
masak | not this one. | ||
Moukeddar | i'll take your word :) | 12:45 | |
12:47
drbean left
12:48
drbean joined
|
|||
Moukeddar | masak, what's exactly domain-driven thingy ? | 12:48 | |
12:49
sjn joined
|
|||
masak | the way I understand it: for every business application we write, there's an underlying domain, often with a great tradition. | 12:49 | |
if we write a shipping system, there's a shipping domain with a lot of established terms. | |||
Moukeddar | ah i see now | ||
masak | stock exchange system -- stock exchange domain. etc. | ||
Moukeddar | just like i thought it is :) | 12:50 | |
masak | thing is, the programmer usually isn't a domain expert. but a domain expert is needed in order for the system to be relevant/useful/usable. | ||
Moukeddar | studying in foreign language can be a pain :p | ||
so, i don't have to "Know it All " ???? | 12:51 | ||
masak | correct. | ||
Moukeddar | sweet | ||
i was feeling crippled | |||
so , later in my career | 12:52 | ||
i'll get the specification | |||
then i'll work out a solution right? | |||
masak | the specification isn't a domain expert. | ||
12:52
drbean left
|
|||
masak | what you need is an actual human being who knows the domain. | 12:53 | |
Moukeddar | ah | ||
for example let's say i was assignet to code an accounting app | |||
masak | and then to work out a common language with terms that (1) the domain expert understands and can use, and (2) you understand and use in your system. | ||
12:53
MayDaniel left
|
|||
Moukeddar | i'll have to discuss everything with an accountant for example | 12:53 | |
right? | |||
masak | right. | ||
or someone who is very familiar with accounting. | 12:54 | ||
Moukeddar | nice :) | ||
mathw | although if you work for a big company, you may well just be handed a design and told to code a particular part of it | ||
Moukeddar | things are getting clear for me | ||
12:54
drbean joined,
Trashlord left
|
|||
Moukeddar | Mercy | 12:54 | |
mathw | although that sucks, implementing someone else's design is usually frustrating because they'll get it wrong :) | ||
masak | mathw: that's very waterfall-y. problem is that experience only trickles downward/forward. | 12:55 | |
mathw | yeah | ||
Moukeddar | haha , and there's no way for you to correct it ? | ||
masak | no :/ | ||
mathw | fortunately where I am we don't have specific software designers | ||
Moukeddar | Ouch! | ||
mathw | so we all do a mixture | ||
masak | yeah. | ||
mathw | we're software engineers rather than programmers | ||
so we get a thing to do | |||
and have to come up with how to do it, how to fit it into the existing system, all that | |||
Moukeddar | good :) | 12:56 | |
mathw | solo or with consultation with colleagues | ||
Moukeddar | i wish i could go to get a software engineer degree | ||
mathw | usually the latter, they help spot the stupid mistakes before you make them :) | ||
Moukeddar | so hard here | ||
mathw | :( | ||
I've got a degree in computer science | |||
we had a module on good software design | |||
very useful | |||
I wish there was evidence in the world that anybody else had ever done it... | |||
Like Mum's work had a new database app | 12:57 | ||
supposedly customised for their specific needs | |||
Moukeddar | here ,either high grades (which's kinda impossible due to private schools galactical marks ) or money | ||
mathw | the company gathered loads of requirements and use cases... and then ignored them all | ||
ah | 12:58 | ||
not so bad here | |||
12:58
drbean left
|
|||
mathw | My parents supplied me with a fair amount of money | 12:59 | |
I had work in the holidays | |||
and a student loan | |||
Moukeddar | it's very bad here | ||
mathw | my university's now charging 3x the fees it was though | ||
Moukeddar | 3rd world Style baddassity | ||
13:00
drbean joined
|
|||
mathw | but then, we now have a government who apparently have no interest in the idea of anybody without old money being educated beyond the age of 18 | 13:00 | |
Moukeddar | there's no work here than can supply me with enough money for those schools | ||
but still , i'll do it | 13:01 | ||
i'll take abumpy road and hope it'll work :) | |||
thanks for the tips guys :) | 13:02 | ||
mathw | I hope you can do it | 13:03 | |
Moukeddar | i really do too :) | 13:04 | |
13:04
drbean left
|
|||
tadzik | seen worr | 13:04 | |
aloha | worr was last seen in #perl6 43 days 8 hours ago saying "sorry about that". | ||
masak | Moukeddar: listen to what books people recommend, read them, code a lot. it's not a total substitute for a higher education, but it will get you a long way. | 13:06 | |
13:06
drbean joined
|
|||
Moukeddar | masak, that's what i'm trying to do :) | 13:06 | |
masak | Moukeddar++ | 13:07 | |
mathw | yes | 13:08 | |
do open source stuff, listen to what people say about what you do, learn from them | |||
there are some extremely skilled and very talented people in places like this | |||
Moukeddar | i'll have to take my coding level one more step before being able to contribute to open source projects | 13:09 | |
or else i'll get flamed | |||
mathw | we don't do flaming | 13:10 | |
education instead | |||
Moukeddar | well | ||
they do | |||
13:10
drbean left
|
|||
moritz | then contribute to us, not to them :-) | 13:10 | |
mathw | yes :) | 13:11 | |
Moukeddar | i went to Gamedev asking about XNA or SlimDX , and i got flamed real bad :) | ||
mathw | seriously, this is one of the friendliest places online | ||
ah games people | |||
yes | |||
some of them are not very nice | |||
Moukeddar | perl6 is really tempting :) | ||
the gamdev guys are quite arrogant | |||
13:12
drbean joined
|
|||
Moukeddar | one other thing i got flamed because is that i asked if the fact that i didn't learn Assembly or C\C++ is bad | 13:12 | |
i got no response | 13:13 | ||
is it that bad? | |||
masak | it's a bit of a one-dimensional question. | ||
Moukeddar | and the answer is ? | ||
moritz | Moukeddar: no response is not the same as getting flamed | 13:14 | |
masak | Moukeddar: "it depends" | ||
Moukeddar | it's not the "non response" but the few responses i got were pure troll or flame | ||
masak | I think C is still worth learning for any developer, and probably more so with gaming. | 13:15 | |
but you could write a perfectly good game in Python nowadays and not have to touch C or Assembly. | |||
mathw | I think most big games these days are written primarily in C++ | 13:16 | |
but they usually have large chunks of game-specific code in a higher-level language | |||
Moukeddar | the performance penalty | ||
so what's say ? learn C instead of ASM ? | |||
masak | right, that was my next point: "but if you start writing for the big players on the market..." | ||
mathw | the core game engine is often C++, but the game's own logic may well be in a scripting language the engine can run | ||
masak | Lua, say. | ||
mathw | i.e. Unreal Engine supports UnrealScript | ||
13:16
drbean left
|
|||
mathw | Lua's a common one, yes | 13:17 | |
masak | Moukeddar: I'd go with C before ASM, yes. | ||
Moukeddar | i'm aware of the scripting thing in games :) | ||
C it is :) | |||
mathw | I believe Civilisation 4's engine introduced Python | ||
C is worth learning, yes | |||
Moukeddar | this summer i'm gonna rock :) | ||
mathw | I'm a bit biased of course | ||
flussence vaguely remembers the horrible language used by a few Doom sourceports... | |||
mathw | I'm a professional C++ programmer :) | ||
masak | Moukeddar: ASM is always CPU-specific; C is the assembly language of the von Neumann machine :) | ||
Su-Shee | I'm doing web development and guis and I still think it's a good thing per se to know C and assembler. (and smalltalk and scheme or lisp and for example io or self or javascript..) | ||
13:17
Helios` left
|
|||
mathw | But I think all programmers should be at least familiar with C | 13:17 | |
and have also looked at languages in other paradigms | 13:18 | ||
Moukeddar | ASM seems like an Overkill for what i'm intending to do in the future | ||
masak | mathw: me too. | ||
Moukeddar | ok C :) | ||
mathw | I need to make some time to brush up on my Haskell properly again | ||
then I think I'll need to spend some more time with Prolog | |||
Moukeddar | you're a league of gentlemen :) | ||
mathw | and I still want to learn Common Lisp (don't ask why, maybe I'm feeling masochistic) | ||
13:18
Helios` joined
|
|||
masak | learn this: C, LISP, Haskell, Prolog, Perl 5, and Perl 6. :) | 13:18 | |
Su-Shee | thanks to the rise of available microcontrollers for everyone I also think a little assembler doesn't hurt. | 13:19 | |
13:19
drbean joined
|
|||
masak | let's make that Common Lisp. | 13:19 | |
Su-Shee | masak: you're missing one of the purist OO langs ;) | ||
masak | Su-Shee: oh, that's very true. | ||
Moukeddar | microcontroller ? | ||
mathw | Common Lisp is awesomely powerful, but the syntax sends my eyes wild | ||
Moukeddar | costs a fortune here | ||
mathw | Su-Shee: Smalltalk! | ||
masak | yes, Smalltalk. | ||
mathw | I did some of that once | ||
I didn't like the whole persistent image thing | |||
Su-Shee | I love smalltalk. really opened my eyes on a very special way. | ||
masak | Java and/or C# there will be plenty of time to learn at $work :P | ||
Moukeddar | C is a must , then i'll go wild :) | ||
mathw | but I love the idea of OO using message passing instead of method calls | 13:20 | |
Su-Shee | mathw: it felt weird but the integration is amazing. | ||
masak | this sounds like a blog post. "why you should learn these 7 langauges" | ||
mathw | Interestingly, Objective-C uses a very smalltalky object model | ||
Su-Shee | and the smalltalk books are exceptional. | ||
mathw | masak: go for it | ||
Moukeddar | mathw, should try the Async thingy , amazing :) | ||
Su-Shee | masak: there's at least 20 of those already and 30 stack overflow threads and they _all_ agree basically on the canon :) | 13:21 | |
crockford's 6 episode javascript lessons basically tell it as well. | |||
masak | Su-Shee: you don't happen to have the URLs to some of them? | ||
Su-Shee | (which are really worthwhile to watch..) | ||
mathw | okay | 13:22 | |
I need to go out and get some yarn | |||
13:22
Helios` is now known as Helios
|
|||
mathw | I have a teddy bear to make, and at the moment I can only make it in luminous green | 13:22 | |
Su-Shee | masak: not at hand, I'll paste it if I fall over one again. I plainly did what a good humanities student is supposed to do: "know the classics" ;) | ||
Moukeddar | teddy bear ? | ||
lol | |||
you guys are hilarious :) | |||
thanks again :) | 13:23 | ||
masak | mathw++ # practicing the soft arts | ||
13:23
IllvilJa left
|
|||
mathw | yeah I like making things that are tangible | 13:23 | |
Su-Shee | but I can really really recommend smalltalk books. | ||
mathw: that's why I bake bread :) | |||
mathw | Su-Shee: I baked bread this morning :) | ||
later I will be playing music | |||
Su-Shee | mathw: mine is still growing ;) (sourdough) | ||
13:23
drbean left
|
|||
mathw | ah | 13:23 | |
I've never managed to get a sourdough starter going | 13:24 | ||
masak | re Smalltalk: I sometimes come back to this document: gagne.homedns.org/~tgagne/contrib/E...oryST.html | ||
it's inspiring reading. | |||
mathw | but I did do a nice slow rise, so it should have good flavour | ||
I'll find out later :) | |||
Moukeddar | one other issue i have is the language | ||
:( | |||
moritz | mathw: starting a sourdough is a bit like bootstrapping a compiler :-) | 13:25 | |
mathw | okay, I'm off | ||
I'll be back later | |||
13:25
drbean joined
|
|||
Su-Shee | masak: there's also an extremely interesting lecture of alan kay from the mid 80ies about userinterface, it's amazing what this man was involved in. | 13:25 | |
Moukeddar | hello ? | ||
jnthn | moritz: I said "d'oh" quite a few times working on nqp bootstrapping ;) | ||
masak | Moukeddar: don't ask to ask. :) just say what you want. | 13:26 | |
Moukeddar | i need a better translator :) | 13:27 | |
thank you guys again | 13:29 | ||
i'm off to NOMNOM | |||
masak | o/ | ||
13:30
drbean left
13:31
drbean joined
|
|||
Moukeddar | false alarm , not ready yet :( | 13:32 | |
13:34
Moukeddar left
13:36
drbean left
13:38
drbean joined
13:45
drbean left
13:46
drbean joined
|
|||
colomon | just blogged a p6 resource page for my talk today, comments deeply appreciated: justrakudoit.wordpress.com/2011/04/...resources/ | 13:49 | |
13:50
wallberg joined
13:51
drbean left
|
|||
masak | colomon++ | 13:52 | |
moritz | colomon: change that link to masak's blog post to strangelyconsistent.org/blog/happy-...ary-perl-6 | ||
colomon: otherwise: very nice | |||
masak was just going to say that | |||
13:53
drbean joined
|
|||
moritz faster | 13:53 | ||
13:53
JimmyZ joined
|
|||
masak | :) | 13:53 | |
moritz | can anybody else confirm spectest failures on newest parrot? | ||
colomon | I'm going to stick my presentation on line in a couple of minutes for suggestions, too. | ||
moritz++ | |||
13:53
pmurias joined
|
|||
masak | ooh, I found a typo in the first paragraph of that post... | 13:53 | |
masak fixes | |||
13:57
awwaiid left
13:58
drbean left
13:59
drbean joined
|
|||
colomon | Is try.rakudo.org working atm? | 13:59 | |
13:59
fhelmberger joined
|
|||
moritz | seems not | 14:00 | |
wallberg | hi all! I seem to recall asking this a long time ago but here it goes again. how can I open a named UNIX pipe/fifo in p6 and read input on it? | 14:02 | |
moritz would try open('pipename') | |||
masak | doesn't a named UNIX pipe/fifo work just like a file? | 14:03 | |
14:03
drbean left
|
|||
flussence | it's socket files that are fiddly, fifos should work just fine | 14:03 | |
14:04
JimmyZ_ joined
|
|||
masak | the abstraction that a fifo does is that it's behavior pretending to be a file. so a Perl 6 implementation should blithely treat it as a file, otherwise the implementation is doing something wrong. | 14:04 | |
14:05
drbean joined
|
|||
wallberg | ok | 14:05 | |
Can we make system calls from within p6 to run commands such as mkfifo? | 14:06 | ||
14:06
JimmyZ left,
JimmyZ_ is now known as JimmyZ
|
|||
wallberg | system("bla bla")? | 14:06 | |
moritz | run("mkfifo arg1 arg2") | ||
masak | run 'bla bla' | ||
wallberg | oki | ||
masak | moritz is faster than I today ;) | 14:07 | |
colomon | backtick works as well, no? | ||
masak | no. | ||
colomon | btw, presentation draft is www.harmonyware.com/out-talk/0001.html | ||
masak | but qx and qqx do. | ||
moritz | qx/qqx | ||
masak | ooh. | ||
colomon | still needs the section on junctions. :) | ||
14:07
pochi left
|
|||
colomon | and probably much advice from the worthies here. | 14:07 | |
jnthn | colomon: will take quick look through | ||
wallberg | can someone elaborate a little on qx and qqx? | ||
masak | colomon: "All the main developers are there pretty much day" -- missing "every"? | 14:08 | |
colomon | yes | ||
jnthn | colomon: All the main developers are there pretty much day | ||
oh, masak was quicker | |||
colomon | corrected locally now. :) | ||
masak | "Two languages from the Perl family" -- Larry Wall | ||
is that a direct quote? | 14:09 | ||
I recall obra saying that, but not TimToady. | |||
jnthn | "Implemented in NQP (Not Quite Perl 6) and Parrot" | ||
Worth mentioning that much of it is written in Perl 6 too (e.g. the setting) | |||
14:09
imamelia|Sleep joined
14:10
drbean left
|
|||
jnthn | "We hope to have it also running on .NET soon" ==> yes, but the new meta-model and gradual typing improvements are more immediate | 14:10 | |
masak | <TimToady> I think deuterium should be renamed to something less insulting to hydrogen. | ||
jnthn | And potentially more interesting. | ||
colomon | masak: That's actually ripped from one of jnthn++'s talks | ||
masak | oh, ok :) | ||
jnthn | orly? :) | ||
masak | jnthn: is that a direct quote? :) | ||
14:10
drbean joined
14:11
arcus left
|
|||
colomon | jnthn: " * New meta-model and gradual typing improvements are the next big project" added before .NET line | 14:11 | |
jnthn | colomon: OK | 14:12 | |
Maybe even next/current :) | |||
er, s/next/current/ :) | |||
colomon | done | ||
14:12
arcus joined
14:13
Helios left
|
|||
jnthn | masak: er... | 14:13 | |
14:13
wamba joined
|
|||
jnthn | masak: I'm guessing if I put it as a direct quote I musta got that from somewhere | 14:13 | |
14:14
Helios joined
14:15
drbean left
|
|||
arcus | hi | 14:15 | |
I get some error while running a script:dpaste.com/537475/ | |||
tadzik | hello arcus | ||
arcus: this is a Perl 6 channel, you seem to have a problem with Perl 5 | |||
colomon | now I'm worried I made up that quote, I can't find where jnthn said it. | ||
masak | colomon: one possible source is this post: strangelyconsistent.org/blog/how-pe...ill-us-all | 14:16 | |
moritz | I've also quoted larry saying that | ||
masak | "Perl 5 and Perl 6 are two languages in the Perl family, but of different lineages." | 14:17 | |
14:17
drbean joined
|
|||
masak | but the meme is definitely earlier than that. | 14:17 | |
colomon | Ah, I probably stole it from moritz++ | 14:18 | |
masak | from moritz? | ||
colomon: nice slides. | 14:19 | ||
colomon | Thanks. | ||
moritz | I had it as a quote in a german 5 -> 6 talk | ||
masak | ah. | ||
colomon | moritz: which was the source file I started working with to do this talk. :) | 14:20 | |
I think a couple of your examples may have survived too. | |||
14:21
drbean left
|
|||
colomon | like bits of factorials | 14:21 | |
14:22
JimmyZ left
14:23
drbean joined
|
|||
moritz | colomon: fwiw the output in s5/index.html is much more polished | 14:23 | |
colomon: I don't know if the README says it, but there are two different sets of output files generated | |||
colomon: the ones in s5/ are prettier :-) | 14:24 | ||
colomon | One thought on roles I developed while working on this: roles can be akin to "has a" relationships. So for instance in the ABC example, it makes sense to say Note has a Duration. It makes no sense to say Note *is* a Duration, so inheritance doesn't really fit well. | ||
moritz: errr... | 14:25 | ||
moritz | colomon: cd s5; firefox index.html | ||
colomon | actually, if I use the s5 version, Camelia is lurking over the upper left hand corner of my text on every page | 14:26 | |
moritz | then make her smaller :-) | ||
masak | ooh -- psyde crashed. | ||
something must've moved under it while I didn't blog. | |||
colomon | moritz: suggestions as to how? | 14:27 | |
14:27
imamelia|Sleep is now known as imamelia
|
|||
moritz | colomon: s5.tmpl is the template | 14:27 | |
14:28
drbean left
|
|||
moritz | oh wait | 14:28 | |
just resize s5/camelia.gif, or so | |||
moritz hasn't used it for ages | |||
masak | colomon: if the Note *has a* Duration, isn't that a hint that you should use composition, not role-'does'? | 14:29 | |
14:29
drbean joined
|
|||
colomon | masak: what do you mean by composition? | 14:30 | |
moritz | has $.duration; | ||
colomon | hmmm... I guess it's the difference between has $.duration versus is duration-bearing-object | 14:31 | |
14:34
[1]imamelia joined,
drbean left
14:35
drbean joined
|
|||
masak | I often find this kind of OO design decision tricky. | 14:36 | |
it often feels like there are a few degrees of freedom left over, with no real guidance (apart from experience) on how to factor things. | |||
14:37
imamelia left,
[1]imamelia is now known as imamelia
|
|||
colomon | masak: yes. As you might gather, I'm still trying to feel out when it makes sense to use inheritance and when roles. | 14:37 | |
I feel like there's an article or book waiting to be written on the subject once someone understands it a little better. :) | 14:38 | ||
moritz: s5 version looks much much better once it is de-cameliaized, but now some of the slides are too. | |||
*long | |||
masak | colomon: the "extremist" line would be to use roles for all behavior reuse, and inheritance only for type relations between classes. | 14:39 | |
14:39
drbean left
|
|||
moritz | colomon: then split them up | 14:40 | |
colomon | moritz: yes, I'm working on it | ||
moritz | colomon: the rule of thumb is that you shouldn't have more than 5 facts on a single slide :-) | ||
14:41
drbean joined
14:45
drbean left
14:47
drbean joined
14:52
drbean left
|
|||
colomon | rakudo: my Int|Str $error = "String"; say $error | 14:52 | |
p6eval | rakudo 8533c3: OUTPUT«===SORRY!===In "my" declaration, typename Int must be predeclared (or marked as declarative with :: prefix) at line 22, near "|Str $erro"» | ||
colomon | odd error | ||
moritz | std: my Int|Str $error = "String"; say $error | 14:53 | |
p6eval | std 3468e14: OUTPUT«===SORRY!===Multiple prefix constraints not yet supported at /tmp/VLi3cE_UJL line 1:------> my Int⏏|Str $error = "String"; say $errorMalformed my at /tmp/VLi3cE_UJL line 1:------> my Int⏏|Str $error = "String"; say | ||
..$error… | |||
colomon | woah, not even supported in STD yet?! | ||
moritz | not even in Perl 6 | ||
14:54
drbean joined
|
|||
colomon | the example is straight from the spec. | 14:54 | |
masak | there's been a de-emphasizing of junctional types in favor of where clauses. | ||
colomon: then the spec needs updating. | |||
colomon | that was from S02, I think. | 14:55 | |
I'm looking for the section on junctions? | |||
masak | there's a little about junctions in S09. | ||
colomon | and a tiny bit in S03 | ||
so, where in the world is pmichaud's beautiful card script? I saved it somewhere safe... | 14:57 | ||
masak | gist.github.com/153993 | ||
colomon | masak++ | ||
14:58
drbean left
14:59
drbean joined
|
|||
colomon | interesting ... it gives errors now | 14:59 | |
Use of uninitialized value in numeric context in 'Code::assuming_helper' at line 1 | |||
ouch | 15:00 | ||
@deck Z @( (2..10, 10, 10, 10, 11) >>xx>> 4 ); doesn't work correctly | |||
masak | confirmed. | ||
(the error message, that is) | 15:01 | ||
moritz | try it with Xxx 4 instead of >>xx>> 4 | ||
colomon is not sure he approves of Xxx as a command | |||
however, that does work. moritz++ | |||
moritz | wow, I'm impressed. That was a shot in the dark | ||
15:02
wamba left
|
|||
moritz | it's three chars shorter :-) | 15:02 | |
15:03
drbean left
|
|||
colomon | process.pl: Wide character in subroutine entry at process.pl line 143. | 15:04 | |
seems like it doesn't like unicode? | |||
moritz | colomon: you can ignore that warning, I can also fix it :-) | 15:05 | |
15:05
drbean joined
|
|||
moritz | colomon: git pull, and try again please | 15:06 | |
15:06
pochi joined
|
|||
colomon | beauty! moritz++ | 15:07 | |
15:10
drbean left
15:11
drbean joined
15:16
drbean left
15:18
drbean joined
15:20
cognominal left
15:21
cognominal joined
15:22
drbean left
15:24
drbean joined
15:25
orafu left
15:27
orafu joined
15:29
drbean left
15:30
drbean joined
15:32
JimmyZ joined
|
|||
JimmyZ | rakudo:sub postfix:<!>($a) { [*] 1..$a; }; say (*!)(5); | 15:34 | |
p6eval | rakudo 8533c3: OUTPUT«120» | ||
15:35
mtk left
15:36
cotto left
15:37
[1]imamelia joined
15:38
drbean left
15:39
imamelia left,
[1]imamelia is now known as imamelia,
drbean joined
15:42
ymasory_ joined
15:44
mtk joined,
drbean left
15:45
drbean joined
15:46
ymasory left,
ymasory_ is now known as ymasory
15:49
arcus_ joined
15:50
drbean left
|
|||
JimmyZ | rakudo:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); #is this expected? | 15:51 | |
p6eval | rakudo 8533c3: OUTPUT«120» | ||
15:51
arcus left
|
|||
moritz | no, I think whitespace in operators is disallowed | 15:51 | |
15:51
drbean joined
|
|||
JimmyZ | rakudo:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); # SBC case | 15:53 | |
p6eval | rakudo 8533c3: OUTPUT«120» | ||
JimmyZ | std:sub postfix:< >($a) { [*] 1..$a; }; say (* )(5); | 15:56 | |
p6eval | std 3468e14: OUTPUT«Use of uninitialized value $starter in concatenation (.) or string at /usr/local/share/perl/5.10.1/CursorBase.pm line 2754.Use of uninitialized value $stopper in concatenation (.) or string at /usr/local/share/perl/5.10.1/CursorBase.pm line 2754.Use of uninitialized value | ||
..$starte… | |||
15:56
drbean left
15:58
drbean joined
|
|||
colomon | rakudo: say 4 & 5 == 4 & 5 | 15:59 | |
p6eval | rakudo 8533c3: OUTPUT«all(all(Bool::True, Bool::False), all(Bool::False, Bool::True))» | ||
16:01
Kovensky left
16:02
drbean left
16:04
drbean joined,
[Coke] left
16:06
[Coke] joined
16:09
drbean left
16:10
drbean joined
16:11
[Coke] left
|
|||
moritz | colomon: don't even start telling beginners about junctions | 16:11 | |
rakudo: say so 4 & 5 == 4 & 5 | |||
p6eval | rakudo 8533c3: OUTPUT«Bool::False» | ||
moritz | rakudo: say so 4 | 5 == 4 & 5 | 16:12 | |
p6eval | rakudo 8533c3: OUTPUT«Bool::True» | ||
16:12
[Coke] joined
|
|||
colomon | Should I just leave that bit out? I did write up two slides for it. | 16:13 | |
moritz | IMHO they are rather confusing for beginners | ||
and they tend to spend way too much time on it, and then are disappointed in the end | 16:14 | ||
colomon | IMO they are confusing, period. :) | ||
And I have the impression the entire p6 community spent too much time on them, so fair enough. | |||
those slides are now gone. | 16:15 | ||
16:15
drbean left,
Kovensky joined
16:16
JimmyZ left,
drbean joined
16:21
drbean left
16:23
justatheory joined,
drbean joined
|
|||
colomon | rakudo: my @a = 1..52; my @b = @a.shift(5); say ~@b | 16:23 | |
p6eval | rakudo 8533c3: OUTPUT«Too many positional parameters passed; got 2 but expected 1 in 'List::shift' at line 2906:CORE.setting in main program body at line 22:/tmp/ctPkOjZ3zJ» | ||
16:27
drbean left
16:29
drbean joined,
arcus joined
16:30
plobsing joined
16:31
Tedd1 left
16:34
drbean left
16:35
drbean joined
16:40
drbean left
16:41
drbean joined
16:46
drbean left
16:48
drbean joined
16:51
drbean left
16:52
mberends left
16:54
drbean joined
16:58
drbean left
17:00
drbean joined
17:05
drbean left,
mberends joined
17:06
drbean joined
17:11
MayDaniel joined,
drbean left
17:13
drbean joined
17:17
arcus left,
colomon left
17:18
drbean left
17:19
drbean joined
17:22
Helios left
17:24
drbean left
17:25
Helios joined
17:26
drbean joined
17:30
orafu left,
drbean left
17:32
drbean joined,
orafu joined
17:35
MayDaniel left
17:36
drbean left
17:38
drbean joined
17:40
leprevost left
17:42
Helios left,
Helios joined,
drbean left
17:44
drbean joined
17:47
drbean left
17:51
drbean joined
17:55
drbean left
17:57
drbean joined,
arcus_ left
18:01
cotto joined,
drbean left
18:03
drbean joined
18:04
jaldhar left,
jaldhar joined
18:07
pamera joined
18:08
drbean left
18:10
drbean joined
18:11
whiteknight left
18:13
ymasory left
18:14
drbean left
18:15
drbean joined
18:20
drbean left,
justatheory left
18:21
drbean joined
18:26
drbean left
18:27
drbean joined
18:29
Helios left,
Helios joined
18:32
drbean left
18:34
drbean joined
18:38
Sonja joined
18:39
drbean_ joined,
drbean left
18:44
drbean_ left,
drbean joined
18:45
Helios left
18:47
orafu left,
Helios joined
18:48
drbean left
18:50
drbean joined
18:51
orafu joined
18:55
drbean left
18:57
drbean joined,
mj41 joined,
Helios left
18:59
cotto left,
orafu left
19:00
orafu joined
19:01
drbean left
19:02
Helios joined,
Sonja left
19:03
Sonja joined,
drbean joined
19:04
noganex_ joined
19:07
noganex left,
drbean left
19:09
drbean joined
19:14
drbean left
19:16
drbean joined
19:21
drbean left,
donri joined
19:22
drbean joined
19:26
drbean left
19:28
SHODAN joined,
drbean joined,
justatheory joined
19:34
drbean left,
risou left
19:35
drbean joined
19:39
drbean left
19:41
drbean joined
19:42
pjcj left
19:43
pamera left,
Sonjaaa joined,
risou joined
19:44
Sonjaaa left
19:45
drbean left
19:46
drbean joined,
Sonja left
19:50
drbean left
19:51
drbean joined
19:54
pmurias left
19:56
drbean left
19:57
bluescreen10 joined
19:58
drbean joined
20:02
drbean left
20:04
drbean joined
20:05
ymasory joined
20:08
drbean left
20:09
drbean joined
20:12
risou left
20:13
molaf left
20:14
drbean left,
drbean joined
20:16
dorlamm joined
20:19
drbean left
20:21
drbean joined
20:25
drbean left
20:26
drbean joined
20:27
imamelia left
20:30
drbean left
20:31
drbean joined
20:34
alester joined
20:36
drbean left
20:37
drbean joined
20:38
pjcj joined
20:42
drbean left
20:43
drbean joined
20:47
drbean left
20:49
Tedd1 joined,
drbean joined
20:50
mberends left
20:53
drbean left,
justatheory left
20:54
justatheory joined
|
|||
masak | JimmyZ++ # whitespace op bug | 20:54 | |
masak submits rakudobug | |||
rakudo: say (* )(5) | |||
p6eval | rakudo 8533c3: OUTPUT«invoke() not implemented in class 'Whatever' in main program body at line 22:/tmp/B33jnbC8fQ» | ||
20:55
drbean joined
20:56
mj41 left
20:58
justatheory left
20:59
drbean left
21:02
drbean joined
21:03
mberends joined
21:06
drbean left
21:07
drbean joined
21:11
drbean left
21:12
drbean joined
21:13
[particle] joined
21:14
[particle]1 left
21:17
wamba joined,
drbean left
|
|||
lue | hello world, finally! o/ | 21:17 | |
masak | lue!!\o/!! | ||
21:19
drbean joined
|
|||
masak | rakudo: say "lue is back! oh {<joy noes>.pick}!" | 21:20 | |
p6eval | rakudo 8533c3: OUTPUT«lue is back! oh noes!» | ||
masak | :) | ||
frettled | (: | ||
lue | Can't wait for the next Doctor Who episode (in ≈4 hours!) | 21:22 | |
rakudo: say "lue is back! oh {<joy noes>.pick}!" | 21:23 | ||
p6eval | rakudo 8533c3: OUTPUT«lue is back! oh joy!» | ||
21:23
drbean left
|
|||
masak | rakudo: say "Doctor {<Who What Where Why When>.pick}?" | 21:23 | |
p6eval | rakudo 8533c3: OUTPUT«Doctor Where?» | ||
lue | rakudo: say Doctor.WHO | 21:24 | |
p6eval | rakudo 8533c3: OUTPUT«Could not find sub &Doctor in main program body at line 22:/tmp/x7tAQTDlnA» | ||
lue | aw, not even Perl6 knows his name :( | ||
21:25
drbean joined
21:28
icwiener left
|
|||
lue | Anyone bother messing with my Pod6 reader lately? :) | 21:29 | |
21:29
Limbic_Region joined
21:30
drbean left,
spam_ joined
|
|||
masak | lue: no; did you leave an encouragement somewhere for people to do that? | 21:30 | |
21:30
drbean joined,
MayDaniel joined
|
|||
spam_ | i need to recent good reference on perl6, i also do not know alot about perl5 so I need to know if I should learn it too to learn perl6. | 21:31 | |
masak | spam_: hello. | 21:32 | |
spam_: it helps to know Perl 5, but it's not necessary. | |||
spam_ | masak: hello. | ||
lue | I think I did, but just a weak one in my blog post. | ||
masak | spam_: as to good references, may I recommend perl6.org ? | ||
spam_: from there, you can reach other good resources, such as the Advent Calendar and Rosetta Code. | 21:33 | ||
lue | spam_: I haven't learned any Perl5 and I'm doing just fine. | ||
21:33
justatheory joined
|
|||
tylercurtis knows Perl 5 mostly as a backend for his internal Perl 6 compiler. | 21:33 | ||
masak | :) | 21:34 | |
spam_ | I know python but not sure that will help with perl6. I always wanted to check perl6 but always got this feeling that learning perl6 without knowing perl5 is a waste of time... | ||
21:34
y3llow left
|
|||
masak | it's certainly not a waste of time. | 21:34 | |
21:34
drbean left
|
|||
masak | and knowing Python will help you in many cases too. | 21:34 | |
21:34
y3llow joined
|
|||
masak | rakudo: my $a = 5; say 2 < $a < 8 | 21:34 | |
p6eval | rakudo 8533c3: OUTPUT«Bool::True» | ||
masak | that's a Python feature, right? :) | 21:35 | |
TimToady | and Perl 6 := is basically identical to Python assignment | ||
21:35
drbean joined
|
|||
spam_ | ah! found a pdf named using perl6. seems nice.. | 21:35 | |
tylercurtis | TimToady: really? | 21:36 | |
masak | spam_: yes, it's a book in progress. but you'll find a lot in there. | ||
lue | TimToady: there is nothing like binding (:=) in Python. That's why I came to Perl6. | ||
(nothing easy to use, anyway) | |||
tylercurtis | rakudo: my $x = 5; my $y := $x; say :$x, :$y; $x = 6; say :$x; :$y; | 21:37 | |
p6eval | rakudo 8533c3: OUTPUT«2 unexpected named parameters passed (x, y) in 'say' at line 5828:CORE.setting in main program body at line 22:/tmp/ouA4pd9pRv» | ||
TimToady | au contraire, = in Python is scalar := in Pelr 6 | ||
*Perl 6 even | |||
tylercurtis | rakudo: my $x = 5; my $y := $x; say (:$x, :$y); $x = 6; say (:$x; :$y); | ||
TimToady | is supposed to be, not necessarily what rakudo does right now | ||
p6eval | rakudo 8533c3: OUTPUT«x 5y 5y 6» | ||
tylercurtis | rakudo: my $x = 5; my $y := $x; say (:$x, :$y); $x = 6; say (:$x, :$y); | 21:38 | |
p6eval | rakudo 8533c3: OUTPUT«x 5y 5x 6y 6» | ||
tylercurtis | TimToady: what should that output? | ||
TimToady | that looks correct to me | 21:39 | |
21:39
spam_ left
21:40
drbean left
|
|||
tylercurtis | TimToady: The equivalent Python program (replacing := with =) results in x = 6 and y = 5. | 21:41 | |
masak | rakudo: say join ' ', <be bop>.roll(4), <bi bop!> | ||
p6eval | rakudo 8533c3: OUTPUT«bop bop be bop bi bop!» | ||
21:42
drbean joined
|
|||
TimToady | yes, but you also have to replace = with something Python doesn't have | 21:42 | |
tylercurtis | ah, true. | ||
lue assumes that something is binding. | 21:44 | ||
TimToady | Python has binding; it doesn't support assignment in the sense that Perl does | 21:46 | |
masak | lue: what TimToady is saying is that Python does have binding, and spells it '='. | ||
lue: what it doesn't have is assignment, in the form Perl 6 does. | 21:47 | ||
21:47
drbean left
|
|||
tylercurtis | TimToady: In what way is this distinguishable from having assignment, but not binding? | 21:47 | |
masak | lue: it's a bit similar to nqp, which also only has binding. but nqp spells it ':=' | ||
dalek | d: 9f27365 | larry++ | CursorBase.pmc: Disallow null operators |
||
21:48
drbean joined
|
|||
lue | Then what Python mustn't have done the action-at-a-distance part in the way := does. | 21:49 | |
masak | lue: it can't, if all you have is binding. | 21:50 | |
lue: you can only do that when you have binding *and* assignment. | |||
TimToady | tylercurtis: it lacks copy semantics in places where a Perl programmer would expect it | ||
such as: a = [1,2,3]; b = a; b[0] = 42; print a # [42,2,3] | |||
masak | rakudo: my $a = [1,2,3]; my $b = $a; $b[0] = 42; say $a.perl | 21:51 | |
p6eval | rakudo 8533c3: OUTPUT«[42, 2, 3]» | ||
masak stands arms akimbo :) | |||
21:52
never joined
|
|||
TimToady | there may be a better example :) | 21:52 | |
21:52
drbean left
|
|||
masak | rakudo: say "never!" | 21:52 | |
p6eval | rakudo 8533c3: OUTPUT«never!» | ||
never | top of the evening to you all :) | ||
lue | So it's beause Python never made a distinction, not that it was w/o binding, that I got frustrated and switched to P6? | 21:53 | |
masak | lue: I guess we will never know :) | ||
21:54
drbean joined,
am0c joined
|
|||
lue | Well, what did it for me was lack of switch statements (could you imagine typing something like if opcode == 256 times? I couldn't.) | 21:55 | |
masak | that's what hashes are for :) | 21:56 | |
moritz | or arrays | 21:57 | |
masak | or arrays, if your... what moritz said. | ||
moritz | in the case of integer opcodes :-) | ||
masak | arrays are just 0-based integer special cases of hashes. :P just ask the PHP or awk folks. | ||
21:59
drbean left
|
|||
lue | And I needed AAAD for the "shadow ROM" areas of the NES memory, but I could get around it with manually diverting calls to shadow memory. | 21:59 | |
22:00
drbean joined
22:03
wamba left
22:05
drbean left
|
|||
masak | 'AAAD'? | 22:07 | |
22:07
drbean joined
|
|||
lue | Action At A Distance (I was getting tired of writing it all out) | 22:09 | |
22:11
drbean left
|
|||
masak | lue: all problems in computer science can be solved by adding another layer of indirection. | 22:11 | |
sbp | or by writing a program that adds another layer of indirection | 22:12 | |
or a framework to create programs that add new layers of indirection | |||
masak | make it an abstract framework factory. | 22:13 | |
moritz | or a FrameworkFactory that helps you write framworks that ... | ||
masak | I might need more frameworks down the line. | ||
22:13
drbean joined
|
|||
masak | moritz: stop thinking what I'm thinking! :P | 22:13 | |
moritz | masak: stop thinking what I'm thinking! :P | 22:14 | |
masak | arrrgh! | ||
:) | |||
frettled | All programming is an exercise in caching. | ||
(John Mashey, IIRC) | |||
masak | frettled: I don't see that one quite so easily. do you have an elucidating example? | 22:15 | |
lue | .oO(I wanted to build the framework, but I had no frame of reference...) |
||
TimToady | masak: it's hard to shift a hash | ||
masak | TimToady: yeah. I did put a smiley on that line, fwiw :) | 22:16 | |
TimToady | doesn't look like a smile to me :P | ||
frettled | masak: sorry, it was Terje Mathisen, not John Mashey, that changes _everything_ ;) | ||
masak | TimToady: you would see my smile if the tongue weren't in the way :P | 22:17 | |
22:18
drbean left
|
|||
frettled | masak: but in general, no matter how you try to abstract things, your programming usually makes assumptions about how you handle data, which kinds and amounts of data are practical to handle, in which way | 22:18 | |
22:18
drbean joined
|
|||
frettled | the real quote has the «almost» prefix, though | 22:19 | |
coz Terje is really, really smart | 22:20 | ||
22:20
alester left
22:22
drbean left
22:23
drbean joined
22:25
saaki left
22:27
vert2_ left,
dorlamm left,
Helios left
22:28
drbean left
22:29
Lorn left,
Helios joined
22:30
drbean joined
22:31
Lorn joined
22:34
drbean left
22:36
drbean joined
22:37
Lorn left
22:41
drbean left
22:42
drbean joined
22:46
drbean left
22:48
drbean joined
|
|||
lue | [Pod6] Hm. Should I treat semantic blocks (things like TITLE and LICENSE and so on) like just another blocktype, or as a wholly separate thing? | 22:51 | |
22:53
drbean left
|
|||
masak | an excellent question. | 22:53 | |
please provide adequate reasons for both scenarios :) | 22:54 | ||
22:54
drbean joined,
cotto joined
|
|||
lue thinking... | 22:57 | ||
masak | lue: syntactically, they're just a type of abbreviated blocks, no? | 22:58 | |
22:58
drbean left
|
|||
masak | so one way to factor things would be to just say "semantic blocks are abbreviated blocks whose names happen to be all-uppercase". | 22:59 | |
lue | According to S26, they're like =para blocks, but with a free title (usually rendered as =head1) and semantic info for parsers. | 23:00 | |
masak | right. | ||
23:01
drbean joined
|
|||
lue | I'm wondering how to deal with them. Either they are separted in the grammar so they can be sorted neatly in the actions, or they're treated like any other block name with the parser responsible for figuring out which blocks are semantic during conversion. | 23:02 | |
(btw, have you ever done file * in the specs repo?) | |||
masak | I think they should be separated in the grammar iff the fact that they are semantic blocks affects the subsequent parsing. | 23:03 | |
judging from what you wrote above about =para blocks, sounds like that might be the case. though I'm not sure. | |||
23:05
MayDaniel left,
drbean left
|
|||
lue | I would think there are certain formats (Manpage in particular IIRC) where that semantic info is important, and having the grammar sort it out seems cleaner than having the conversion mechanism try to guess at it. | 23:06 | |
23:07
drbean joined
|
|||
masak | there's no doubt that by the time the Pod machinery is done building the AST, the information should be there. | 23:08 | |
the question is more: should it be the grammar or the action methods doing the tagging? | |||
guess in the end, it doesn't matter too much. just do what falls out most easily. | |||
rakudo: say gcd(14, 21) | 23:09 | ||
p6eval | rakudo 8533c3: OUTPUT«7» | ||
masak | jnthn: look, we already had it that way :) | ||
rakudo: say lcm(14, 21) | |||
p6eval | rakudo 8533c3: OUTPUT«Could not find sub &lcm in main program body at line 22:/tmp/mXMLN858lP» | ||
masak | meh. | ||
lue | I would guess the answer is 42. | 23:10 | |
I think having a separate semantic rule in the grammar is the best way to go. | |||
jnthn | masak: I wonder how deliberate that is... :) | ||
masak | rakudo: sub lcm($x, $y) { $x * $y / gcd($x, $y) }; say lcm(14, 21) | ||
p6eval | rakudo 8533c3: OUTPUT«42» | ||
masak | lue++ !! | ||
23:11
drbean left
|
|||
lue | I memorized all the integer factors of 42 a long time ago. 1 2 3 6 7 14 21 42 [not that it's hard to memorize though :)] | 23:11 | |
masak | lue: I am reluctantly impressed. | 23:12 | |
I wouldn't have though such knowledge to ever be useful. but apparently it was in exactly this case. | |||
23:13
drbean joined,
whiteknight joined
|
|||
lue | I think what actually happened was I read h2g2 in middle school, became fascinated with 42, and before I knew it I knew all the factors. | 23:14 | |
=head1 header\n\n is legal, right? | |||
masak | think so. | 23:15 | |
I'm equally narrowly interested in some numbers. numbers of the form 2 ** $N always fascinated me. | |||
even more so numbers of the form 2 ** (2 ** $N) | |||
I learned this one by heart: | |||
niecza: say 2 ** 32 | 23:16 | ||
p6eval | niecza v4-76-g7bf5ef9: OUTPUT«4294967296» | ||
masak | it's a pretty number. | ||
jnthn | ...what makes a number pretty? :) | ||
masak | just bias, I guess. :P | ||
but I think all the numbers in that sequence are quite pretty. | 23:17 | ||
rakudo: .say for map { 2 ** $_ }, 0..32 | |||
p6eval | rakudo 8533c3: OUTPUT«124816326412825651210242048409681921638432768655361310722621445242881048576209715241943048388608167772163355443267108864134217728268435456536870912107374182421474836484294967296» | ||
lue | I know those by heart up to 1024, 4096 if I think about it. | 23:18 | |
jnthn | Beauty is in the eye of the beholder. :) | ||
TimToady | rakudo: say 2 ** 2 ** 2 ** 2 * 2 ** 2 ** 2 ** 2 | ||
p6eval | rakudo 8533c3: OUTPUT«4294967296» | ||
23:18
drbean left
|
|||
lue | rakudo: .say for map {16 ** $_ }, 0..5 | 23:19 | |
23:19
drbean joined
|
|||
p6eval | rakudo 8533c3: OUTPUT«1162564096655361048576» | 23:19 | |
lue | rakudo: .say for map {16 ** $_ }, 0..10 | ||
p6eval | rakudo 8533c3: OUTPUT«1162564096655361048576167772162684354564294967296687194767361099511627776» | ||
23:19
skangas left
|
|||
masak | rakudo: .say for map { 2 ** (2 ** $_) }, ^5 | 23:19 | |
p6eval | rakudo 8533c3: OUTPUT«241625665536» | ||
masak | rakudo: .say for map { 2 ** (2 ** $_) }, ^6 | ||
p6eval | rakudo 8533c3: OUTPUT«2416256655364294967296» | 23:20 | |
masak | a girl in high school found out about my obsession. | ||
lue | 16 ** $N is another favorite of mine. Up to 65536, with vague memories of the next two. | ||
masak | she learned this number: | ||
rakudo: say 2 ** (2 ** 6) | |||
TimToady | what with the superstitious parens? | ||
p6eval | rakudo 8533c3: OUTPUT«1.84467440737096e+19» | ||
masak | heh :) | 23:21 | |
rakudo: say 2 ** 2 ** 6 | |||
p6eval | rakudo 8533c3: OUTPUT«1.84467440737096e+19» | ||
lue | Superstition? Overuse of TI calcs? | ||
masak | TimToady: I'm too lazy to learn the associativity of **, I guess... | ||
TimToady | rakudo: say 2 ** 2 ** $_ for ^6 | ||
lue | .oO(Overuse of TeX?) |
||
p6eval | rakudo 8533c3: OUTPUT«2416256655364294967296» | ||
23:22
test-1 joined
|
|||
masak | TimToady: it's definitely one where I don't assume that the reader of my code knows it. | 23:22 | |
TimToady: but in essence, I don't know it by heart either :) | |||
niecza: say 2 ** 2 ** 6 | 23:23 | ||
p6eval | niecza v4-76-g7bf5ef9: OUTPUT«1.84467440737096E+19» | ||
masak | bah. :) | ||
pugs: say 2 ** 2 ** 6 | |||
p6eval | pugs: OUTPUT«18446744073709551616» | ||
23:23
mtk left
|
|||
masak | \o/ | 23:23 | |
23:23
drbean left
|
|||
masak | I never learned this number. | 23:23 | |
test-1 | p6eval rakudo: say 1 + 1 | 23:24 | |
p6eval | test-1: rakudo 8533c3: OUTPUT«2» | ||
TimToady | ooh, ship it! | ||
jnthn | Huh, we could do that a couple of years ago... :P | 23:25 | |
23:25
drbean joined
|
|||
lue | I should learn all 40 digits of pi eventually. betterexplained.com/articles/learni...precision/ | 23:25 | |
masak | all five of them, you mean? :) | 23:26 | |
TimToady | I have it on good authority that the last digit of pi is incorrect. | ||
sorear | jnthn: (what makes a number pretty) low Kolmogorov complexity. | ||
masak | sorear: so pi is a really ugly number? | ||
'night, pandas | 23:27 | ||
jnthn | sorear: whoa | ||
23:27
masak left
23:30
drbean left
23:31
drbean joined
23:32
mtk joined
|
|||
test-1 | msg rakudo : say 1+2 | 23:32 | |
? | |||
msg p6eval rakudo: say 1+2 | 23:34 | ||
23:35
ymasory left
23:36
drbean left,
Lorn joined
|
|||
TimToady | use /msg | 23:36 | |
but we don't mind you playing with it here, as long as you don't overdo it | 23:37 | ||
23:38
drbean joined
23:41
wallberg left
23:42
drbean left
23:44
drbean joined
23:48
drbean left
23:50
drbean joined
23:54
drbean left
23:56
ashleydev joined,
drbean joined
23:59
Helios left
|