»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg camelia perl6: ... | irclog: irc.perl6.org | UTF-8 is our friend! Set by sorear on 25 June 2013. |
|||
00:00
zwut00 left
|
|||
skids | there's q「 | 00:00 | |
00:08
cognominal left
00:09
cognominal joined
00:14
Psyche^ left
00:15
prevost joined
00:17
Psyche^ joined
|
|||
flussence | huh, I was looking for a list of set operators just a while ago too | 00:19 | |
yeah, there doesn't seem to be a good list anywhere. I had to look at the rakudo source to figure it out | |||
TimToady | if someone wants to document what we've got, that'd be much appreciated | 00:23 | |
timotimo | hey TimToady, you're attentive? does "nodal" make sense if the hyper gets applied to an Associative? | 00:24 | |
rather than an Iterable, that is | |||
TimToady | if something is not iterable, hyper makes no sense on it; however, hashes are iterable, not just associative | 00:28 | |
now, race might make sense on non-iterables, as long as there's any kind of divide-and-conquer interface | 00:29 | ||
timotimo | hm. there's a candidate for hyper on Associative in rakudo at least | 00:30 | |
(it blew up because i was recurring into hyper passing along a nodal_p that's supposed to decide wether to treat one element as nodal or not) | |||
dalek | ast: 3593e2d | (David Warring)++ | S05-mass/charsets.t: tidies |
00:44 | |
ecza: 51dda4b | coke++ | t/spectest.data: Run tests that pass or are pre-fudged |
00:53 | ||
00:58
pernatiy joined
01:32
kbaker left
01:38
prevost_ joined
01:39
benabik left
01:43
benabik joined
01:58
btyler left
01:59
EvanTeitelman left
02:05
prevost_ left
02:10
BitPuffin joined
02:11
berekuk joined
02:13
berekuk_ left
02:27
araujo left,
araujo joined,
araujo left,
araujo joined,
Bzek left
02:30
Bzek joined
02:41
ghena1986 joined,
ghena1986 left
03:07
thou left
03:16
preflex_ joined,
ChanServ sets mode: +v preflex_,
preflex left,
preflex_ is now known as preflex,
abnorman left
03:19
ssutch left
03:21
pupoque joined
|
|||
BenGoldberg | rpn: say pi | 03:27 | |
camelia | rakudo 5a8c53: OUTPUT«3.14159265358979» | ||
..pugs: OUTPUT«3.141592653589793» | |||
..niecza v24-95-ga6d4c5f: OUTPUT«3.1415926535897931» | |||
BenGoldberg | rpn: say pi.sin | 03:28 | |
camelia | rakudo 5a8c53: OUTPUT«1.22460635382238e-16» | ||
..pugs: OUTPUT«1.2246063538223773e-16» | |||
..niecza v24-95-ga6d4c5f: OUTPUT«1.2246063538223773E-16» | |||
BenGoldberg | rpn: pi.tan.say | 03:30 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«-1.2246063538223773E-16» | ||
..pugs: OUTPUT«-1.2246063538223773e-16» | |||
..rakudo 5a8c53: OUTPUT«-1.22460635382238e-16» | |||
BenGoldberg | rpn say pi.sin-pi.tan | 03:31 | |
rpn: say pi.sin-pi.tan | |||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«Unhandled exception: Unable to resolve method sin-pi in type Num at /tmp/YhDHQ8U9Bz line 1 (mainline @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4583 (ANON @ 3)  at /home/p6eval/niecza/lib/CORE.setting line 4584 (module-CORE @ 576)  at /home… | ||
..rakudo 5a8c53: OUTPUT«No such method 'sin-pi' for invocant of type 'Num' in block at /tmp/U1wW0La7of:1» | |||
..pugs: OUTPUT«*** No such method in class Rat: "&sin-pi" at /tmp/sE4cmjHN6u line 1, column 5 - line 2, column 1» | |||
BenGoldberg | rpn: say (pi.sin)-(pi.tan) | ||
camelia | rakudo 5a8c53: OUTPUT«2.44921270764475e-16» | ||
..pugs: OUTPUT«2.4492127076447545e-16» | |||
..niecza v24-95-ga6d4c5f: OUTPUT«2.4492127076447545E-16» | |||
BenGoldberg | rpn: say (pi.sin)+(pi.tan) | 03:32 | |
camelia | rakudo 5a8c53, niecza v24-95-ga6d4c5f, pugs: OUTPUT«0» | ||
03:33
raiph left
03:36
raiph joined
03:37
btyler joined
03:39
prevost left
03:43
avuserow joined
03:46
btyler left
03:58
fridim_ left
04:10
xenoterracide left
04:21
xenoterracide joined
04:27
pupoque left
|
|||
dalek | ast: 9cd0478 | (David Warring)++ | S05-metachars/newline.t: unfudged for rakudo.jvm |
04:29 | |
04:38
BenGoldberg left
05:02
xenoterracide left
05:41
SamuraiJack joined
|
|||
cognominal | I discovered elm a few days ago elm-lang.org/ I did not know Functional Reactive programming. I wish Perl 6 will support that style. elm-lang.org/edit/examples/Reactive/Position.elm | 05:46 | |
I don't mean elm syntax (haskell like) but the FRP style. | |||
05:57
ssutch joined
|
|||
cognominal | thru coursera, I will take Odersky course on FRP. I will see how it compares to elm :) | 05:58 | |
06:02
domidumont joined
06:06
domidumont left
06:07
xinming_ left,
domidumont joined
06:08
xinming joined
06:09
sorear left
06:11
FROGGS joined,
DarthGandalf left,
frdmn left
06:13
sorear joined
|
|||
dalek | kudo/nom: 1915fc5 | (Elizabeth Mattijsen)++ | src/core/Setty.pm: Remove P5 thinko, spotted by BenGoldberg++ This reverts commit 437e799c0ff5db7084ce7032fda7663bf8323a84. |
06:15 | |
06:16
DarthGandalf joined
|
|||
lizmat | r: my @a=1..5; say "bar" if @a.grep( {say "foo"; $_} ) # BenGoldberg++ | 06:17 | |
camelia | rakudo 5a8c53: OUTPUT«foobar» | ||
lizmat | breakfast& | 06:18 | |
06:19
bbkr_ left
|
|||
FROGGS | o/ | 06:20 | |
06:20
bbkr_ joined
06:24
domidumont left
06:32
frdmn joined
06:43
denis_boyun joined
06:45
kaleem joined
06:47
aindilis left,
aindilis joined
|
|||
diakopter | . | 06:52 | |
yoleaux | 06:21Z <FROGGS> diakopter: Wut? irclog.perlgeek.de/moarvm/2013-09-09#i_7563809 | ||
06:53
domidumont joined
07:06
dmol joined
07:08
SamuraiJack_ joined
07:09
zakharyas joined
07:12
SamuraiJack left
|
|||
mathw | o/ | 07:13 | |
FROGGS | hi mathw | ||
mathw | hi froggs | 07:15 | |
07:23
cognominal left
07:25
cognominal joined
07:34
donaldh joined
07:38
denis_boyun left
07:42
sidus joined
|
|||
arnsholt | Aw, crap. Work Java is too old to build NQP/JVM =( | 07:52 | |
mathw | aaaw | 07:53 | |
07:54
raiph left
07:55
pupoque joined
08:13
dakkar joined
|
|||
dalek | kudo/nom: ddfaa61 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm: Re-implement (<+) |
08:27 | |
ast: 5abb9eb | (Elizabeth Mattijsen)++ | S03-operators/bag.t: Unfudge 9, fudge 8 (for now) because of test corruption |
08:30 | ||
08:35
nebuchadnezzar left,
nebuchadnezzar joined
08:38
donaldh left
|
|||
dalek | rlito: 1f23d35 | (Flavio S. Glock)++ | / (3 files): Perlito5 - js - code cleanup |
08:38 | |
08:43
Mouq left
08:50
dayangkun joined
09:02
daxim joined
09:05
sqirrel joined,
preflex_ joined,
ChanServ sets mode: +v preflex_
09:11
preflex left,
aindilis left,
bbkr_ left,
REPLeffect left,
_ilbot left,
sjohnson left,
Vlavv left,
slavik left,
bruges left,
GlitchMr left,
TimToady left,
odoacre left,
awwaiid left,
BabsSeed left,
alexghacker left,
ribasushi left,
sergot left,
nwc10 left,
lestrrat left,
rom1504 left,
sorear left,
araujo left,
bakedb left,
jercos left,
pecastro left,
mtk left,
PZt left,
Celelibi left,
felher left,
Yappo__________ left,
pjcj left,
avar left,
Hor|zon left,
jtpalmer left,
mls left,
ivan`` left,
krunen_ left,
p5eval left,
jnthn left,
moritz left,
c1sung left,
ssutch left,
Bzek left,
benabik left,
BitPuffin left,
genehack left,
Woodi left,
japhb left,
dalek left,
sunnavy left,
BooK left,
groky left,
crazedpsyc left,
cibs left
09:12
pochi_ joined
09:14
preflex_ is now known as preflex,
pochi left
09:17
ssutch joined,
Bzek joined,
BitPuffin joined,
benabik joined,
genehack joined,
Woodi joined,
japhb joined,
dalek joined,
sunnavy joined,
BooK joined,
groky joined,
crazedpsyc joined,
hitchcock.freenode.net sets mode: +v dalek,
simcop2387 left,
crazedpsyc left,
crazed- joined
09:19
crazed- is now known as crazedpsyc
09:20
aindilis joined,
bbkr_ joined,
sorear joined,
araujo joined,
REPLeffect joined,
rom1504 joined,
lestrrat joined,
nwc10 joined,
sergot joined,
ribasushi joined,
alexghacker joined,
BabsSeed joined,
awwaiid joined,
odoacre joined,
TimToady joined,
GlitchMr joined,
bruges joined,
slavik joined,
Vlavv joined,
sjohnson joined,
_ilbot joined,
mls joined,
jtpalmer joined,
Hor|zon joined,
avar joined,
pjcj joined,
Yappo__________ joined,
felher joined,
Celelibi joined,
PZt joined,
mtk joined,
pecastro joined,
jercos joined,
bakedb joined,
c1sung joined,
moritz joined,
jnthn joined,
p5eval joined,
krunen_ joined,
ivan`` joined,
cibs joined,
sqirrel left,
simcop2387 joined
09:21
simcop2387 left,
simcop2387 joined
09:24
xinming left
09:25
xinming joined,
fhelmberger joined
09:31
qiyong joined
|
|||
qiyong | does p6 have CPAN or similar thing? | 09:31 | |
tadzik | somewhat similar thing, yes | 09:32 | |
modules.perl6.org/ | |||
qiyong | p5/p6 has to use external modules to do things like send mails, right? | 09:34 | |
FROGGS | qiyong: there is nothing built in AFAIK, yes | 09:36 | |
qiyong | FROGGS: cpans are written in perl? | ||
FROGGS | qiyong: modules are written in perl | 09:37 | |
cpan is just a network that makes them available | |||
qiyong | FROGGS: is cpan perl offical? or loossily like sf.net? | 09:38 | |
FROGGS | qiyong: CPAN is the official module distribution ecosystem for Perl 5 | ||
JimmyZ | qiyong: offical sf | ||
qiyong | JimmyZ: ? | 09:39 | |
JimmyZ | 你好 | ||
FROGGS | everyone can register as an author an release modules | ||
qiyong | FROGGS: anyone can upload modules? | ||
JimmyZ | 是的 | 09:40 | |
FROGGS | yes, if the module name is available | ||
but if you want to upload a module Foo that somebody else "owns", you won't be able to do so | |||
qiyong | FROGGS: the same as sf.net? | ||
FROGGS | qiyong: I think CPAN is a bit stricter | 09:41 | |
qiyong | what if trojans are included? | ||
FROGGS | bad luck | ||
qiyong | does perl have any standard libary/modules to trust? | 09:42 | |
FROGGS | but there are people who monitor the recently uploaded modules, so there is some sort of moderation | ||
JimmyZ | qiyong: You may want to ask it in #perl5 | ||
or #perl | 09:43 | ||
or #cpan | |||
09:44
dmol left
|
|||
qiyong | FROGGS: "use foo"; where foo must come from CPAN or modules.p6 | 09:47 | |
perl binary package doesn't ship anything you can 'use'? | |||
moritz | currently rakudo ships two packages, Test and lib | ||
and R* ships more modules | |||
and Rakudo Star (short R*) is made by the same people as Rakudo | 09:48 | ||
qiyong | so p6 is different than p5 here | ||
moritz | so if you trust us, you can trust R* | ||
qiyong: only gradually | |||
qiyong | p5 doesn't include any modules, p6 begin to ship modules | ||
moritz | qiyong: huh? p5 comes with lots of core modules | 09:49 | |
JimmyZ | at leaest it contains 'use strict' | ||
strict.pm | 09:50 | ||
FROGGS | Test::Util and many many others | ||
qiyong | moritz: is it strict.pm or a meta package? | ||
FROGGS | err | ||
List::Util | |||
moritz | qiyong: I cannot parse that question | ||
and I don't know what a "meta package" is either | |||
JimmyZ | s/or// | ||
qiyong | dpkg -L perl | grep pm | wc -l | 09:51 | |
87 | |||
dalek | rlito: 0f008b0 | (Flavio S. Glock)++ | / (6 files): Perlito5 - js - fix caller(), typeglob-reference assignment, grep; added minimal Carp module |
||
moritz | dpkg -L perl-modules | grep pm | wc -l | ||
498 | |||
FROGGS | qiyong: now you are talking about modules packages by debian | ||
moritz | qiyong: debian packages many core modules in the package 'perl-modules' | ||
$ corelist /./|grep '\S'|wc -l | 09:52 | ||
746 | |||
qiyong | moritz: is perl-modules part of perl or CPAN? | ||
moritz | qiyong: perl | ||
FROGGS | (where "perl" is Perl 5) | ||
qiyong | i see, so perl5/6 has always bee shiping core modules | 09:54 | |
been* | |||
FROGGS | yes | ||
dalek | rlito: 2d0e5ef | (Flavio S. Glock)++ | / (2 files): Perlito5 - perl5 - typeglob fix |
09:55 | |
FROGGS | even if it would just be Test.pm and lib.pm for the rakudo Perl 6 compiler release | ||
dalek | rlito: 61913e4 | (Flavio S. Glock)++ | src5/lib/Perlito5/Carp.pm: Perlito5 - js - added minimal Carp module |
||
FROGGS | and about 200 additional modules for the rakudo Star release | ||
qiyong | is p6 faster than p5? | 09:58 | |
FROGGS | usually not | ||
qiyong | iw p6 compiled like python's .pyc file? | ||
p6 is slower? regression? | |||
tadzik | p6 is a languages | ||
a language * | |||
FROGGS | I don't know what a .pyc file is, sorry | ||
tadzik | not an implementation | 09:59 | |
.pyc is what .pbc or .pir or .class is, basically | |||
a precompiled module | |||
FROGGS | rakudo-perl6 is usually slower as perl5, to say it correct | ||
qiyong | is p6 compiled like java/python byte code? | ||
moritz | qiyong: Rakudo supports precompiling of modules | ||
qiyong | will p6 be faster in future? | ||
FROGGS | faster as it is now or faster as perl 5? | 10:00 | |
qiyong | moritz: precompiled into elf possible? | ||
as fast as p5 at least | |||
tadzik | qiyong: are you operating on an assumption that elf will be faster? | ||
FROGGS | we will see | ||
nobody can tell whether it will outperform perl 5 some day | |||
or not | 10:01 | ||
tadzik | magic 8 ball can | ||
it says "Absolutely" | |||
FROGGS | *g* | ||
tadzik | it's settled then | ||
FROGGS | good to know :o) | ||
qiyong | tadzik: elf is only easier to distribute | 10:02 | |
Ulti | a better goal is to outperform perl5 when using Moose and every other layer of candy people now use when writing Perl5 | ||
qiyong | why p6 is implemented as virtual machine? | 10:03 | |
is that the future? | |||
Ulti | its the past | ||
FROGGS | qiyong: and vm-specific bytecode is easier to distribute that elf, since I can run the same bytecode on windows/linux/unix/bsd/mac/android/whereever | 10:04 | |
lunch & | |||
tadzik | qiyong: because it makes more sense that way | 10:05 | |
qiyong | FROGGS: platform independancy is the reason? | ||
moritz | not the only one | 10:06 | |
qiyong | tadzik: such as? | ||
moritz: a major one? | |||
moritz | the main reason is that Perl 6 code needs a runtime | ||
like garbage collector, just-in-time compiler, and lots of other infrastructure | |||
qiyong | why not implement runtime as p5? | ||
moritz | and where do you put that? in a VM! | ||
qiyong | does p5 support JIV? | 10:07 | |
moritz | qiyong: p5 also has a VM internally, it's just not separated from the compiler and other parts as cleanly as in Perl 6 | ||
qiyong | so p6 is going the way java has had | ||
tadzik | and python | ||
and perl 5 | |||
and ruby | |||
and basically everything these days | |||
it makes more sense for a HLL | |||
qiyong | moritz: since what version? p4 or older? | ||
tadzik | high level language | 10:08 | |
moritz | qiyong: since version 1 at least | ||
qiyong | so dynamic lanauge implementation needs a vm design | ||
moritz | the lesson is that if a dynamic language doesn't have a designed vm, it has an ad-hoc vm | 10:09 | |
qiyong | so p6, python has a clean vm | ||
p5 has an ad-hoc, possibly ruby too | 10:10 | ||
java has clean vm too | |||
10:11
BitPuffin_ joined
|
|||
qiyong | confirm me? | 10:13 | |
moritz | confirmed. | ||
qiyong | thanks | ||
is vm+runtime design more complex than traditional language's (c, pascal)? | 10:14 | ||
or simpler | |||
clang is vm based | |||
moritz | no, it's not | ||
it's based on llvm | |||
10:15
BitPuffin left
|
|||
moritz | which is much more low-level than "normal" VMs such as java | 10:15 | |
qiyong | llvm is deferent from vm here? | ||
i see | |||
tadzik | llvm is not a VM in terms of a runtime | ||
it's an artificial instruction set | |||
moritz | right | ||
tadzik | but it doesn't "run code" | ||
in the same way your operating system provides a VM | 10:16 | ||
you don't talk to hardware directly, you talk to the OS | |||
qiyong | is it intermidiate code? | ||
tadzik | in that sense, OS gives you a VM to code for | ||
what is, llvm coed? | |||
qiyong | is vm big software? | ||
is llvm intermidiate code? | 10:17 | ||
tadzik | llvm is intermediate code, yes | ||
VMs can be big | |||
they usually end up quite big | |||
qiyong | so clang/llvm has nothing new to gcc | ||
tadzik | oh, yes it does | ||
qiyong | so p6 developer have to be familar with vm, right? | 10:18 | |
tadzik | not really | ||
writing code in perl 6 you usually don't have to touch the VM | 10:19 | ||
qiyong | p6 core developers | ||
tadzik | (not directly) | ||
Perl 6 is mostly written in Perl 6 | |||
qiyong | p6 itself developers | ||
tadzik | unless you go low level, you can usually skip the VM details | ||
yes, I'm talking about P6 itself | |||
qiyong | how much percent of the vm code totally? | ||
tadzik | github.com/rakudo/rakudo, look at language statistics | 10:20 | |
76.4% Perl, it says | |||
moritz | qiyong: hard to tell; rakudo has multiple backends, and I'm pretty sure that the JVM has more lines of code than parrot | ||
qiyong | backends are vms? | 10:22 | |
rakudo = front + backend vm? | 10:23 | ||
hoelzro | Rakudo is a Perl 6 compiler that targets multiple VMs | ||
namely, Parrot, the JVM, and MoarVM | |||
(at the moment) | |||
moritz | qiyong: a backend is (code generation for a VM + the VM) | ||
qiyong | (compiler + vm) | 10:24 | |
that's | |||
how many p6 compilers? | |||
moritz | compiler = frontend + backend + interactions between them | ||
2, currently | 10:25 | ||
tadzik | 2 that we know of :> | ||
moritz | unless you count perlito, which doesn't aim to be feature complete | ||
then 3 | |||
tadzik | and pugs | ||
qiyong | why p6 devleopment is so different from othere (python, ruby), multi compilers, multi vms? | 10:26 | |
moritz | because p6 is so different | ||
10:26
dayangkun left
|
|||
moritz | it's so different that there are many areas that haven't previously been explored by compiler writers | 10:26 | |
so there are multiple compilers that approach the problem from different angles | 10:27 | ||
qiyong | like *BSDs | 10:28 | |
not sure if it's development split | |||
so this chan for using p6 or developing p6? | 10:29 | ||
moritz | both | ||
qiyong | so i can learn vm here? | 10:30 | |
parrot | |||
tadzik | #parrot on irc.perl.org is probably better for that | 10:31 | |
qiyong | and for compiler go to #rakkuo? | ||
tadzik | no, rakudo development happens here | ||
qiyong | gtg | ||
10:32
qiyong left,
xenoterracide joined,
denis_boyun joined
10:37
stevan_ left,
stevan_ joined
|
|||
jnthn | man, that lunch was -Ocarbcrash... | 10:37 | |
10:51
Mouq joined
10:53
lichtkind joined
10:55
Mouq left
10:58
dmol joined
11:11
dakkar left
11:15
bloonix left,
dakkar joined
11:19
thou joined
11:22
ssutch left
11:31
thou left
|
|||
timotimo | jnthn: in germany there's a frozen pizza you can get that has little noodles on it | 11:33 | |
daxim | ewww | 11:34 | |
timotimo | it's super tasty, tbh | ||
colomon | there's a place in my wife's old college town that makes fantastic spaghetti pizzas. | 11:35 | |
11:37
pernatiy left
|
|||
colomon | www.foodspotting.com/reviews/712765 # there's a white sauce version, too | 11:37 | |
just in case your diet didn't have enough carbs | |||
11:38
benabik left
|
|||
timotimo | i guess "white sauce" means cheese? | 11:41 | |
daxim | sauce carbonara | 11:42 | |
timotimo | oh my | 11:43 | |
it's gotta be pretty bad if the sauce name even has "carb" in it | 11:45 | ||
11:45
Woodi left
|
|||
hoelzro | haha | 11:46 | |
moritz | makes you carp() | ||
11:52
Woodi joined
11:59
pmurias joined
|
|||
pmurias | FROGGS: there are people who monitor newly uploaded perl5 modules for trojans? | 12:02 | |
12:02
xinming left
12:03
xinming joined,
sqirrel joined
|
|||
lizmat | pmurias: yes, and not only for trojans for that matter :) | 12:05 | |
moritz | just for new distributions, or also for new versions of distributions? | 12:07 | |
lizmat | afaik, all uploads | 12:08 | |
and if I tell you more, I will have to silence you :-) | 12:09 | ||
12:09
sitaktif left
|
|||
lizmat | TimToady, colomon: looking for the spec on .KeySet coercers | 12:09 | |
Currently the .KeySet coercer on KeySet objects returns self | |||
this caused a hard to chase bug with e.g. (&) if the first parameter was a KeySet | 12:10 | ||
colomon | there is no spec for that as far as I know | ||
errr… why? | |||
lizmat | my $keybag = @p ?? @p.shift.KeyBag !! KeyBag.new; | 12:11 | |
if the first element was a keybag, than it would use that | |||
thus causing the KeyBag being checked to be changed | |||
same for KeySet: my $keyset = @p ?? @p.shift.KeySet !! KeySet.new; | 12:12 | ||
well, if there is no spec, I can do what I want :-) | |||
colomon | …. ideally you'd do something sensible. | 12:13 | |
lizmat | yes,... | ||
how does this sound: | |||
method KeySet (:$clone) { $clone ?? KeySet.new(self.keys) !! self } | |||
Fatalnix | something sensible | 12:14 | |
like destroy all pylons! | |||
colomon | lizmat: I guess I'm still not seeing why? | ||
lizmat | because the $keybag I created, is the result to be, and therefore changes | 12:15 | |
colomon | Consulting with TimToady on what coercers should do when called on mutable objects would be a Good Idea | 12:16 | |
certainly I have always expected them to return self | |||
You'll notice, for instance, how I handled the case of wanting a different KeyBag in KeyBag.pick | 12:17 | ||
12:17
PZt left
|
|||
lizmat | yup | 12:18 | |
timotimo | i was under the impression that cloning would be the default and re-use would be optional if you know what you're doing; shouldn't the named parameter be flipped in that case? | ||
or am i conflating this with the use case you had for creating bags etc from hashes temporarily? | |||
lizmat | am not sure... | 12:19 | |
timotimo | oh huh, method KeySet? i don't think that was what i was thinking about | ||
lizmat | let's see how this works out… it's easy enough to change since it is all internal in the settings anyway | ||
timotimo | carry on, then :) | ||
12:20
pernatiy joined
|
|||
colomon | lizmat: also, why (&)? are you making KeySet-specific versions of the Set operators? | 12:22 | |
lizmat | eh, that was in your code / | ||
? | |||
colomon | ????? | ||
lizmat | what do you mean exactly ? | 12:23 | |
which code ? | |||
12:24
sqirrel left
|
|||
colomon | (&) returns a Set or a Bag. Never a KeySet or a KeyBag | 12:25 | |
lizmat | but it returns a Set or Bag! | ||
at the end: $keybag.Bag(:view); | |||
and: $keyset.Set(:view); | |||
colomon | that would be your code, not mine | 12:26 | |
lizmat | yes, it is indeed | ||
colomon | I don't even know what :view means | ||
lizmat | I misunderstood your question | ||
it's an experiment: at this moment it creates a Bag from a KeyBag with the same underlying Hash | 12:27 | ||
so nothing needs to be copied | |||
same with Set from KeySet | |||
I re-implemented Setty / Baggy using the idea of typed hashes | 12:28 | ||
in Setty, the key of the underlying hash is the .WHICH of the key, and the value is the key unchanged | |||
in Baggy, the key is also the .WHICH of the key, and the value is a pair with the original key and count as the vaue | 12:29 | ||
value | |||
that was the only way to get a set unflattend/ unstringified into another set | |||
am I making sense ? | 12:32 | ||
colomon | I understand using WHICH. I don't understand how it relates to the issue at hand at all. | 12:33 | |
12:33
skids left
|
|||
lizmat | in the case of (&), we want the keys that exist in all sets/bags, right ? | 12:33 | |
colomon | right | 12:34 | |
lizmat | so I take the first of the parameters passed, and turn that into a KeyBag/KeySet to work with | ||
colomon | and that's the jump I don't understand | ||
lizmat | if I use a hash, I would have to use a typed hash | ||
and that doesn't work inside the settings (serialization cannot cope with that somehow) | 12:35 | ||
therefore I would use a KeyBag (if there were any baggys) or a KeySet (if there were no baggys) | |||
12:37
benabik joined,
thou joined
|
|||
colomon | why not explicitly create a fresh KeySet / KeyBag for the results, then? | 12:38 | |
dalek | kudo/nom: 9b95a42 | (Elizabeth Mattijsen)++ | src/core/ (3 files): Fix issue with (&) if the first parameter was a KeySet or KeyBag |
||
lizmat | because I use the keys in that KeySet/KeyBag to loop over to see if the exist in the other coerced Sets/Bags | ||
it's like the seed I work from | |||
gist.github.com/lizmat/6508859 the actual code now | 12:40 | ||
line 5 sets up the KeyBag to work with, from the first parameter | 12:41 | ||
lines 6-11 loop over all other parameters as bags, removing keys from the work keybag that don't exist | 12:42 | ||
line 7 turns the work keybag into an immutable bag and returns that | 12:43 | ||
similar for sets in 15-19 | |||
dalek | ast: 7ff98f4 | (Elizabeth Mattijsen)++ | S03-operators/bag.t: Unfudge now passing tests |
12:47 | |
12:50
pupoque left
12:51
tonttuperse joined
12:52
tonttuperse left
12:53
kbaker joined
|
|||
timotimo | .o(i wonder if you should sort the bags by element count and use the smallest one for the loop) | 12:55 | |
FROGGS | you can even take a rucksack if the element count is small enough | 12:56 | |
timotimo | in the most extreme of cases, a handbag could even work | 12:57 | |
or a purse | |||
jnthn | Or just stick the stuff in your pocket | ||
lizmat | timotimo: yes, I was considering ordering | 12:58 | |
but then I would have to coerce everything into something Baggy / Setty already | |||
colomon | lizmat: I appreciate that you're trying to make the code efficient, but I'm uncomfortable with adding a bunch of named parameters to the coercers to help that goal. | 12:59 | |
timotimo | oh, that's right, because the number of elements is only the upper bound of the number of unique elements | ||
colomon 's mind is having an internal war between elegance and optimization | |||
lizmat | those I consider all experimental | ||
and can go at any time | |||
actually, I think the :view parameter indicates a need for something more general | |||
colomon | much like my mind (can go at any time, it's not, so far as I know, experimental) | 13:00 | |
jnthn | Well, evolution is kinda a huge experiment... :) | ||
lizmat | rather than coerce things into other things, I would rather see a Baggy "view" on other things | ||
colomon | jnthn: only if there is an experimenter behind it. ;) | ||
timotimo | haha, i just saw someone take a picture of the lightning talks with a huge tablet, that's so funny looking :D | ||
jnthn | :view args on the coercer feel odd to me, to throw in my 2 sense | 13:01 | |
lizmat | because for all of these operators, what one really only needs is the appropriate at_key method to call | ||
jnthn | uh, cents... | ||
timotimo: Yes, I've never been able to not find taking a photo with a tablet amusing :) | |||
colomon | lizmat: I'm pretty sure I do understand your reasoning now. ;) | 13:02 | |
lizmat | if we say, that a coercer on a mutable object should always return a cloned object, that's fine by me | ||
jnthn | lizmat: I( think we start out that way, and maybe in the future we make a cow mechanism... | 13:03 | |
lizmat | we don't need :clone | ||
colomon | My thought was it should never return a cloned object; getting around that limitation will only take like ten additional characters. | ||
but I may be wrong about never returning a cloned object. | 13:04 | ||
I don't think that's an area of the spec we've explored much... | |||
jnthn | hmm | ||
lizmat | in most modern databases, there are things called views | ||
jnthn | r: my @a; say @a.List.WHAT | ||
camelia | rakudo ddfaa6: OUTPUT«No such method 'List' for invocant of type 'Array' in block at /tmp/FXA26c6MGq:1» | ||
lizmat | I think even DBIx::Class has them, even if the db doesn't support them | ||
jnthn | meh, we can't just steal that answer :P | ||
colomon | lizmat: I'm actually reminded of the great sequence operator trick of pmichaud++ | 13:05 | |
we had been struggling mightily to get the sequence operator working up to spec. | |||
the code was starting to look ludicrous, and it still didn't work. | |||
and pmichaud was like, give that to me, I can make the code much better. | 13:06 | ||
13:07
Bzek left
|
|||
colomon | and I was put out by that, because we'd been working hard it on, and it wasn't obvious (to me) how he could improve it. | 13:07 | |
and he looked at the code for, I don't know, a day or so. | |||
and then told TimToady the spec for the sequence operator had to be simplified, because it was too hard to implement. | |||
and a day or two later, he had a complete implementation of the new sequence operator. | 13:08 | ||
lizmat | hehe... | ||
colomon | which was drastically simpler than the code we had, I should add. | ||
lizmat | why does this feel like the Kobayashi Maru, with pmichaud in the role of JTK | 13:09 | |
13:09
Bzek joined
|
|||
lizmat | :-) | 13:09 | |
FROGGS | hehe | ||
colomon | the spec was a big improvement, too; what it lost in magic it gained in sanity. it was a win all around. | ||
FROGGS | lizmat++ | ||
jnthn | r: say KeySet ~~ Set | 13:10 | |
camelia | rakudo ddfaa6: OUTPUT«False» | ||
jnthn | r: say Set.^mro | ||
camelia | rakudo ddfaa6: OUTPUT«(Set) (Any) (Mu)» | ||
lizmat | r: sau KeySet ~~ Setty | ||
jnthn | r: say KeySet.^mro | ||
camelia | rakudo ddfaa6: OUTPUT«===SORRY!=== Error while compiling /tmp/9MXJDESkwlUndeclared routine: sau used at line 1. Did you mean '&say'?» | ||
rakudo ddfaa6: OUTPUT«(KeySet) (Any) (Mu)» | |||
lizmat | r: say KeySet ~~ Setty | ||
camelia | rakudo ddfaa6: OUTPUT«True» | 13:11 | |
lizmat | Setty is the role | ||
jnthn | r: say Setty.at_home | ||
camelia | rakudo ddfaa6: OUTPUT«No such method 'at_home' for invocant of type 'Setty' in block at /tmp/iwTfVBk1dk:1» | ||
jnthn | aww! | ||
:) | |||
lizmat | KeySet / Set are no longer parent/child | ||
jnthn | ok | ||
So simple type stuff doesn't comke into the coercions then | |||
lizmat | like? | ||
jnthn | I mean, .Setty on a KeySet/Set is identity... | ||
Well, I mean, @array.List should probably just do self. | 13:12 | ||
lizmat | there is no Setty :-) | ||
jnthn | As Array ~~ List | ||
lizmat | ah, yes | ||
jnthn | I was checking if there was a similar argument here | ||
lizmat | or maybe not | ||
jnthn | But no, there's not inheritance in it. :) | ||
lizmat | the thing is:: does a coercer return a mutable object or not | ||
jnthn | If you coerce from a mutable type to an immutable one? | 13:13 | |
I'd think it'd better not just return self. | |||
Um | |||
lizmat | ok, will remove :clone for now | ||
jnthn | I mean, it'd better not mutate from the point you make it immutable. | ||
colomon | jnthn: right | ||
jnthn | You can do it by always cloning | ||
But as I said, we could do a copy-on-write thing too. | |||
Sorry if the cow reference was too opaque :) | 13:14 | ||
.oO( It's call COW 'cus it helps you cope with mootation... ) |
|||
lizmat | it wasn't, but I think this is part of a larger discussion | ||
with views | |||
jnthn | teaching again & | ||
13:15
PacoAir joined
|
|||
lizmat | running some errands& | 13:16 | |
colomon | lizmat: I wouldn't bother changing :clone until some more people weigh in on the mutable / immutable coercers thing. | ||
13:16
PacoAir left
13:17
PacoAir joined
13:25
lowpro30 joined
13:27
denis_boyun left
13:29
lowpro30 left
|
|||
dalek | kudo/nom: a954307 | (Elizabeth Mattijsen)++ | src/core/ (2 files): Add some more :views |
13:30 | |
kudo/nom: afa2a5c | (Elizabeth Mattijsen)++ | src/core/ (3 files): Make .KeySet/.KeyBag always create a new object |
|||
ast: 97bfc53 | (Elizabeth Mattijsen)++ | S03-operators/bag.t: 10 more TODO tests passing |
13:32 | ||
lizmat | removing the :clone feature was easier :-) | ||
timotimo | 10 todos passing \o/ | 13:33 | |
13:33
poor_soul joined
|
|||
poor_soul | hello, #perl6! | 13:34 | |
timotimo | hi there | ||
poor_soul | i actually got two new question today on zavolaj | 13:35 | |
1) do i need to call self.bless inside new | 13:36 | ||
2) is there a way to bind enums? | |||
13:36
bluescreen10 joined,
nyuszika7h left
|
|||
timotimo | what does "bind enums" mean? copy them over from some C header? | 13:36 | |
13:37
nyuszika7h joined
|
|||
poor_soul | they are defined in a c header of a library | 13:37 | |
are they not available in the symbols? | |||
timotimo | i'm not sure, but i think not | ||
poor_soul | timotimo: i understand | 13:38 | |
timotimo | to answer your question about "self.bless", it depends; mostly you'll have some C function that will initialise a struct for you and you can just use that | ||
moritz | and often a BUILD submethod is enough | 13:39 | |
poor_soul | how do i know if i need to call bless or not? | ||
moritz | poor_soul: if you write a custom method new which constructs an object, you'll have to call self.bless | ||
timotimo | for example the ZMQ message.pm looks like this: class Net::ZMQ::Message is repr('CStruct'); [...] my sub zmq_msg_init(Net::ZMQ::Message --> int) is native('libzmq') { * }; [...] multi submethod BUILD() { my $ret = zmq_msg_init(self); zmq_die() if $ret != 0; } | ||
PerlJam | poor_soul: What C stuff are you interfacing with Perl 6? | 13:41 | |
timotimo | libarchive i think | ||
poor_soul | i'm trying to use libarchive, and it has a archive_read_new() which returns a pointer. By what you are saying, i should just return it, is it correct? | ||
PerlJam | ah, nice. | 13:42 | |
timotimo | yeah, your class will be repr('CPointer') and you can use the return value of archive_read_new as your class IIUC | ||
poor_soul | easy peasy :) thank you | 13:43 | |
13:43
kaleem left
|
|||
poor_soul | btw only classes can be declared 'is repr(CPointer)', not roles? | 13:44 | |
arnsholt | No, not roles | ||
moritz | role are just methods and attributes that are copied into classes, plus a bit of behavior | ||
arnsholt | Roles aren't concrete classes that can be instantiated, so it doesn't really make sense for them to have a REPR | ||
moritz | so it doesn't make sense to give them a representation | ||
poor_soul | but repr(CPointer) is not inherited by a subclass | ||
arnsholt | Yeah | ||
poor_soul | why is that so? | 13:45 | |
arnsholt | The REPR is a piece of logic that defines how a particular class is laid out in memory | ||
moritz thinks it wouldn't be bad to inherit the REPR | |||
and in the case of multiple inheritance, it would die if the REPRs of the base classes differ, and you didn't specify one | 13:46 | ||
timotimo | what's the name for the default repr? | ||
poor_soul | if a class inherits one which is REPR, it cannot be used in place of the superclass... | ||
arnsholt | timotimo: P6opaque | ||
timotimo | K | ||
arnsholt | Different REPRs doesn't really affect whether it can be used in place of the superclass or not | 13:47 | |
The REPR only specifies how attributes are stored and looked up in memory | |||
13:47
sidus left
|
|||
poor_soul | wouldn't it be better if it inherited the REPR and just be constrained to not having additional attributes? | 13:47 | |
timotimo | the repr may know about how to handle new attributes | 13:48 | |
arnsholt | It's pretty much only the CPointer REPR that doesn't support attributes | 13:50 | |
(There's CArray as well, but that one's not really part of the user-facing API) | 13:51 | ||
poor_soul | you are saying it would be strange if repr(CPointer) was inheritable thanks to this limitation, while the others are not since the REPR cannot be sure of how to place new attributes | 13:52 | |
arnsholt | You probably don't want to inherit from a class that is CPointer REPRd anyways | 13:55 | |
pmurias | currently if we have class Foo is repr('CPointer') {...};class Bar is Foo {...}, the repr of Bar is P6opaque? | ||
arnsholt | Pretty sure Bar will be P6opaque, yeah | ||
pmurias | wouldn't it make more sense to inherit the repr type? | 13:56 | |
arnsholt | For that particular REPR, yeah. But not for REPRs in general I think | ||
But this is probably more of a jnthn-question =) | 13:57 | ||
pmurias | it seems to more of a TimToady-question | ||
arnsholt | Or TimToady, yeah | 13:58 | |
13:58
jnap joined
|
|||
poor_soul | star: use NativeCall; class A is repr("CPointer") {}; class B is A {}; say B.REPR | 13:58 | |
camelia | star 2013.08: OUTPUT«P6opaque» | ||
14:00
Ulti left
|
|||
arnsholt | poor_soul: But back to your original question, github.com/arnsholt/Net-ZMQ/blob/m.../Socket.pm is an example of a class using the CPointer REPR | 14:02 | |
14:03
benabik left
14:04
raiph joined
|
|||
poor_soul | arnsholt: thanks for the link, a more fleshed out example is always useful | 14:05 | |
14:05
sitaktif joined
|
|||
poor_soul | so, the only way to get constants from a library is to create a little add-on library in c which imports the constants and has some functions to return them as values, is it ok? | 14:07 | |
timotimo | parse the header file and generate a p6 module from it? | ||
poor_soul | what if the values change? i would need to rebuild the module | 14:08 | |
arnsholt | That's one way, or just hard code them in your Perl code: github.com/arnsholt/Net-ZMQ/blob/m...nstants.pm | ||
If the values change, you're screwed either way, usually | |||
poor_soul | right, i would have to rebuild either way | 14:09 | |
jnthn | You'd have to rebuild any C libraries that used the constants too... :) | 14:10 | |
On repr(...) being taken by subclasses, yes, that may make sense | 14:11 | ||
timotimo | you could search for the header file in Build.pm and regenerate the constants file if need be | ||
poor_soul | still, i would need to write a (partial) C header parser, just to get some enums | 14:12 | |
i think i will go the 'hard code them' way | |||
PerlJam | poor_soul: I'm mildly surprised someone hasn't already done that given Perl6's affinity for grammars :) | ||
jnthn | Plenty of people have mentioned it'd be good to have, though :) | 14:13 | |
I've love to but my todo list is already way too long :) | |||
arnsholt | Parsing C is a pretty gnarly problem | ||
Especially if you want to parse headers, since that means you need to cope with the preprocessor as well | 14:14 | ||
jnthn | aye, it's fun :) | ||
PerlJam | arnsholt: but ... but ... we have Perl 6!!! | ||
jnthn | as in evil :) | ||
timotimo | nativecall doesn't require a compiler to be available, right? | ||
colomon is desperately cleaning the house in anticipation of company for lunch. | 14:15 | ||
pmurias | to run it shouldn't | ||
colomon | as a first pass, just use GCC's preprocessor to handle that part of things. | ||
timotimo | right. otherwise one could use the actual preprocessor to do it | ||
pmurias | aren't constanst usually #define's in C? | 14:16 | |
* constants | |||
timotimo | in this case we're interested in an enum, though | ||
poor_soul | #define's surely don't appear as symbols in libraries | 14:17 | |
but i thought enums were available | |||
pmurias | parsing C shouldn't be that hard | ||
14:17
ajr joined
14:18
ajr is now known as Guest57385
|
|||
arnsholt | #defines are used for constants in libraries all over the place | 14:18 | |
14:18
Guest57385 is now known as ajr_
|
|||
arnsholt | I'm not sure if C89 has enums | 14:18 | |
poor_soul | yes, they are used, but this doesn't mean the appear in the .so symbol table | ||
timotimo | C89? that's from when i was born. who seriously still uses that!!!!kkk ;) | ||
poor_soul | *they | ||
colomon is pretty sure C89 does have enums | 14:19 | ||
arnsholt | #defines don't appear in the symbol table, because they're not actually symbols in C (only in the preprocessor) | ||
timotimo: MS C only supports C89 (with occasional pieces of C99), so C89 is kinda important | |||
colomon | timotimo: C89 is from the year I learned C on the job. ;) | ||
arnsholt decommute & | 14:20 | ||
timotimo | arnsholt: sadly not serious | ||
poor_soul | arnsholt: yeah i know | 14:21 | |
colomon | timotimo: incidentally, the job that required the C code was writing a DOS interface to a tape punch machine. | 14:22 | |
14:22
btyler joined
|
|||
PerlJam boggles a little bit that people are questioning if C89 had enums | 14:23 | ||
14:27
Mouq joined
14:28
benabik joined
|
|||
timotimo | tadzik: your lightning talk was good :) | 14:28 | |
diakopter | PerlJam: I don't see anyone in the backlog "questioning" | 14:29 | |
whether C89 had enums | |||
FROGGS | timotimo: linky? | ||
timotimo | lizmat: also, your "is perl6 perl" talk was good (ISTR having seen it before already) | ||
one sec | 14:30 | ||
PerlJam | diakopter: <arnsholt> I'm not sure if C89 has enums | ||
close enough for me :) | |||
timotimo | youtu.be/ftGwgEUFgbE?t=42m13s - starts with moritz, continues with tadzik, ends with lizmat | ||
diakopter | that's simply admitting ignorance | ||
14:30
btyler left
|
|||
diakopter | people aren't allowed to not know things? | 14:31 | |
timotimo | moritz: your talk was good, too. but you weren't as loud as tadzik ;) | ||
14:31
btyler joined
|
|||
diakopter | he didn't say he had a reason to doubt they appeared by then, just that he didn't know when they appeared | 14:31 | |
14:32
Mouq left
|
|||
lizmat | timotimo: :-) | 14:32 | |
tadzik | timotimo: thank you :) | ||
timotimo | still waiting for jnthns parallelism talk to be uploaded | 14:33 | |
but i suppose the steady bunch-of-videos-every-day thing is better than all-videos-at-once-half-a-year-later approach | |||
14:33
benabik left
|
|||
jnthn | I hope the video for my parallelism/conc talk will be decent qualit | 14:34 | |
I can probably promise I wasn't quiet :P | |||
.oO( Promise indeed... ) |
|||
timotimo | :) | ||
i'm afraid the sound quality will likely be not terribly good | 14:35 | ||
jnthn | Hopefully no worse than other main room ones, though. | ||
timotimo | during the devops talk, the camera is quite out of focus, so i can't read the slides at all :( | ||
the main room is the one where lightning talks were held? | |||
jnthn | camops fail... | ||
aye | |||
timotimo | the audio quality there is perfect | 14:36 | |
jnthn | that's where I gave my parallllelism talk | ||
wow, keyboard | |||
timotimo | oh, cool | ||
at least your slides have high contrast text, that's a very good prerequisite for good recording quality | |||
14:37
BitPuffin_ left
14:40
fhelmberger left
|
|||
FROGGS | tadzik++ # entertaining talk! | 14:40 | |
14:41
bluescreen10 left
14:42
bluescreen10 joined
|
|||
timotimo | there's that javascript based template stuff that has a dark blue background with a radial gradient and the text is kind of not very big ... that's much harder to read | 14:42 | |
14:42
bluescreen10 left
|
|||
timotimo | though i must admit the text on jnthns slides is probably not that much bigger, if at all | 14:42 | |
14:43
bluescreen10 joined,
PZt joined
|
|||
timotimo | tadzik: i feel like you should have had a pun in there like "the next step is to get ACT. the step after that is to act!" | 14:45 | |
tadzik | ah, a wasted opportunity! :) | 14:46 | |
moritz | :-) | ||
timotimo | but there's no sense crying over every mistake | ||
tadzik | you just keep on trying till you run out of cake | 14:47 | |
timotimo | i was hoping there'd be some perl6-related replacement for cake | ||
tadzik | funny, that's the first song I learned on the new piano | ||
dalek | kudo/nom: 63dca5d | (Elizabeth Mattijsen)++ | src/core/Setty.pm: Fix set union for Bags and KeyBags |
14:50 | |
ast: 905d93e | (Elizabeth Mattijsen)++ | S03-operators/bag.t: 6 more TODO's passing |
14:51 | ||
14:53
risou_awy is now known as risou
15:01
SamuraiJack__ joined,
SamuraiJack_ left
|
|||
dalek | kudo/nom: 51aa2c8 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm: Fix problem with set multiplication |
15:06 | |
ast: 3c5c43c | (Elizabeth Mattijsen)++ | S03-operators/bag.t: And another 12 TODO's bite the dust |
15:07 | ||
15:16
sidus joined
|
|||
dalek | ast: 1974651 | (Elizabeth Mattijsen)++ | S03-operators/set.t: Two more unfudges |
15:22 | |
15:29
kaare_ joined
15:31
dmol left
|
|||
dalek | rlito: ce83bf7 | (Flavio S. Glock)++ | / (5 files): Perlito5 - js - negative-strings; some tests fail |
15:33 | |
15:34
slava left
15:36
slava joined
15:37
zakharyas left,
sqirrel joined
15:38
FROGGS left
15:40
sqirrel left
15:44
Bzek left
15:46
kivutar joined
|
|||
dalek | kudo/nom: bce4d79 | (Elizabeth Mattijsen)++ | src/core/Setty.pm: If (-) is chaining, then U+2216 SET MINUS [Sm] (∖) should be also |
15:49 | |
15:53
FROGGS[mobile] joined
15:56
skids joined
16:05
domidumont left
16:07
bluescreen10 left,
bluescreen10 joined
16:10
bluescreen10 left
16:11
raiph left,
teslos joined
16:17
dmol joined,
prevost joined
16:18
ajr_ left,
ajr joined
16:19
ajr is now known as Guest48443,
Guest48443 is now known as ajr_,
teslos left
16:26
raiph joined
16:29
kaleem joined
16:32
domidumont joined
|
|||
lizmat | r: my $b=KeyBag.new(<a a a>); say $b (-) <a a a a> | 16:33 | |
camelia | rakudo bce4d7: OUTPUT«Found negative values for a in Bag in method sink at src/gen/CORE.setting:11557 in method BUILDALL at src/gen/CORE.setting:896 in method bless at src/gen/CORE.setting:837 in method new at src/gen/CORE.setting:822 in method new at src/gen/CORE.setting:820… | ||
lizmat | fixing this now | ||
timotimo | ~there is the parallelism talk! | 16:34 | |
www.youtube.com/watch?v=wkfvPx1vFwI | |||
16:34
kaleem left
|
|||
timotimo | except that's not the jnthn i remember | 16:34 | |
dalek | kudo/nom: 233e8c2 | (Elizabeth Mattijsen)++ | src/core/Setty.pm: Fixing set complement bug if right hand had more foo than left hand |
16:35 | |
colomon | more foo? | 16:38 | |
oooo, bug indeed. | |||
lizmat: roast that baby | |||
16:38
jnap left
|
|||
jnthn | timotimo: um, that doesn't seem to be a link to my talk... | 16:40 | |
jnthn don't see his in the Twitter feed yet either... | 16:45 | ||
lizmat | r: say set(1, 2, 3) >>+>> 6 # where would I need to look to fix this ? | 16:46 | |
camelia | rakudo bce4d7: OUTPUT«("1" => 7, "2" => 7, "3" => 7).hash» | ||
lizmat | src/core/metaops I presume, but where ? | 16:47 | |
16:48
Rotwang joined
|
|||
lizmat | r: say set(1, 2, 3) >>+>> fail # tells me where | 16:48 | |
camelia | rakudo bce4d7: OUTPUT«No exception handler and no messagecurrent instr.: 'throw' pc 388834 (src/gen/CORE.setting.pir:164584) (src/gen/CORE.setting:10168)called from Sub 'sink' pc 424894 (src/gen/CORE.setting.pir:177833) (src/gen/CORE.setting:11557)called from Sub 'MAIN' pc 401 (src/… | ||
16:49
jnap joined
|
|||
lizmat | jnthn: adding extra candidates for Setty/Baggy to multi sub hyper(\op, Associative \a, Associative \b, :$dwim-left, :$dwim-right) ?? | 16:50 | |
arnsholt | jnthn: Any objections to making NQP/JVM "ExceptionHandling.dieInternal(ThreadContext, String)" into "dieInternal(ThreadContext, String, Object...)" and passing the string and objects through String.format? | 16:52 | |
lizmat | away for an hour or so& | 16:54 | |
jnthn | arnsholt: Only concern is if we're passing a %foo somewhere already | 16:55 | |
arnsholt: Could it be done with an overlord? | |||
arnsholt: uh. overload! | |||
arnsholt | Oh, right | 16:56 | |
Adding an overload with that signature is of course the right thing | |||
jnthn remembers a really "fun" bug with Parrot exception throwing where a %hash_var in an error got interpreted as an escape :) | |||
('cus forgot it treated it as a format string :)) | 16:57 | ||
arnsholt | Heh. Hilarious, I'm sure =) | ||
jnthn | lizmat: Well, that's the multi sub that does >>...<<, yes | 16:58 | |
r: say Set ~~ Setty | |||
camelia | rakudo bce4d7: OUTPUT«True» | ||
jnthn | r: say Set ~~ Associative | ||
camelia | rakudo bce4d7: OUTPUT«True» | ||
jnthn | r: say Setty ~~ Associative | ||
camelia | rakudo bce4d7: OUTPUT«True» | ||
jnthn | OK, in theory narrowness analysis will work out right too, then. | 16:59 | |
timotimo | jnthn: the video was renamed after i linked it | 17:01 | |
jnthn | timotimo: ah... | ||
timotimo: Just upload name fail I guess hen. | |||
*then | |||
17:09
dakkar left
|
|||
arnsholt | jnthn: In P6OpaqueREPRData.java, shouldn't the unbox slot numbers be longs rather than ints, if we're being pedantic? | 17:11 | |
The for loop's loop variable is a long, and we increment an int inside it to number the slots | 17:12 | ||
17:15
pmurias left
17:19
kivutar left
17:22
risou is now known as risou_awy
17:23
ajr_ left
17:28
ssutch joined
|
|||
[Coke] | n: say "{21697 - 21372} more tests passing today for niecza." | 17:30 | |
camelia | niecza v24-95-ga6d4c5f: OUTPUT«325 more tests passing today for niecza.» | ||
[Coke] | (new test files that were already fudged hadn't been added to spectest.data - more coudl be added with a little more fudging.) | ||
timotimo | jnthn: i sincerely hope your actual recordings are among the batch that's being uploaded at the moment | 17:32 | |
diakopter | timotimo: how do you know there is a batch uploading? | 17:33 | |
timotimo | "58 minutes ago", "1 hour ago", "1 hour ago", "2 hours ago", "5 hours ago" | 17:34 | |
diakopter | oh | ||
timotimo | something's clearly happening | ||
arnsholt | *meep* The JVM inlining stuff is scary | ||
TimToady | timotimo, colomon, lizmat: S13:131 says you can't rely on coercion to give you either a new object or the old object; the only guarantee is that you get an object of the appropriate type, so if you want a guaranteed different mutable object, you'd better clone, then coerce. | 17:38 | |
synopsebot | Link: perlcabal.org/syn/S13.html#line_131 | ||
jnthn | arnsholt: I'm pretty sure we'd hit the limit on the number of fields a JVM class can have before we reach 2**31 fields... :P | 17:44 | |
17:45
rindolf joined
|
|||
arnsholt | Troo, troo =D | 17:45 | |
timotimo | aha! | ||
17:46
jnap left
|
|||
timotimo | there's another video just uploaded with "jonathan worthington" in its title | 17:46 | |
www.youtube.com/watch?v=xg8tAv35YFg - maybe for reals this time | |||
17:47
BitPuffin joined
|
|||
diakopter | timotimo: yes | 17:49 | |
17:54
denis_boyun joined
17:58
spider-mario joined
|
|||
arnsholt | jnthn: Actually, can we really properly inline complex types on JVM? | 18:02 | |
18:02
bluescreen10 joined
18:03
Mouq joined
18:05
daxim left
18:08
Mouq left
18:12
Khisanth joined
|
|||
TimToady | can you properly inline a 2-element array? (assuming we already implemented S09's shaped arrays...) | 18:14 | |
18:28
poor_soul left
18:38
jnap joined,
rindolf left
|
|||
colomon | TimToady++ | 18:38 | |
dalek | rlito: 3792772 | (Flavio S. Glock)++ | / (4 files): Perlito5 - js - negative-strings |
18:39 | |
arnsholt | TimToady: I'm not even sure if any version of Rakudo handles shaped arrays =) | 18:41 | |
18:43
xenoterracide left
|
|||
lizmat | TimToady: so you're saying it is ok for a coerces like KeySet to always create a new object | 18:43 | |
coercer | |||
I guess not | 18:44 | ||
lizmat goes about changing code again | |||
colomon | lizmat: he's saying it's okay for .KeySet to always create a new object, but it *isn't* okay for code using .KeySet to assume that it does so. | 18:48 | |
lizmat | which basically means I need to change the code :-) | ||
colomon | :) | ||
I think it's also implying you can *always* assume :view? | |||
skids | (and not that it matters at this point in development, but a coder would likely put a redundant .clone before the coercer, which is less efficient.) | ||
lizmat | colomon: indeed, good point | 18:52 | |
jnthn | om nom penang nua... | 18:54 | |
arnsholt | Mmmm, Thai food | ||
jnthn | arnsholt: Kinda.. | ||
arnsholt: The problem really is how on earth do you get a reference into the middle of an object... | 18:55 | ||
(JVM doesn't support it.) | |||
arnsholt | Yeah, that's what suddenly struck me | ||
timotimo | aaw i was looking forward to hearing the questions of the audience in the talk | 18:57 | |
clearly a full hour talk would have been better :P | |||
18:57
xenoterracide joined
|
|||
timotimo | but moar will? and moar will run rounds around the jvm in terms of performance :P | 18:58 | |
(at least for executing perl6 code ...) | |||
18:58
jeff_s1 joined
|
|||
diakopter | timotimo: uh, no | 19:02 | |
where are you getting this idea | |||
make sure not to propagate it anywhere | |||
btyler | jnthn: just watched the talk, really exciting stuff! one question that jumped into my mind re channels: is there any way to tell a channel: "stop, I have as much as I can handle right now!" and the channel either buffers incoming data or relays that 'pause' request to the underlying data source | 19:03 | |
diakopter | unless by "executing perl6 code" you mean "perl6 startup time only" | ||
timotimo | the best perl6 scripts will already be done by the time "startup" is over :P | ||
TimToady | btyler: everything is possible with another layer of indirection :) | 19:04 | |
timotimo | btyler: i don't quite understand. there's an internal buffer to the channel anyway, i don't think it's synchronous | 19:05 | |
jnthn | btyler: At the moment a channel is really just a (threadsafe) queue. Sending is non-blocking; it will buffer stuff happily. | 19:06 | |
btyler | mostly comparing to something like the nodejs streams API, which I've played with a tad. entirely possible that I have the wrong sense of how it works. with nodejs streams, you can stream.pause to signal that you'd really rather not keep consuming data at right this moment | ||
jnthn | btyler: I can imagine that feed operators, if we do those with channels between them, will want some mechanism for managing queue length. | ||
btyler | neat, thanks for the clarification | 19:07 | |
jnthn | btyler: And then probably that'd be more general. | ||
timotimo | feed operators are going to be more interesting anyway, because for full performance we will want batching | ||
19:08
zwut00 joined
|
|||
arnsholt | jnthn: So I guess we'll just have to handle inlined aggregates not-inlined-after-all, and just have a normal object member? | 19:08 | |
jnthn | arnsholt: I think so | ||
dalek | kudo/nom: a197668 | (Elizabeth Mattijsen)++ | src/core/ (4 files): Cannot rely on coercer to give a new object, so we need to make one |
19:09 | |
jnthn | arnsholt: Until the JVM gives us struct-like things like the CLR has. | ||
arnsholt: Apparently, it is on the JVM roadmap...though probably years away. | |||
TimToady visualizes a (potential) pair of complete IP stacks between the feed's source and destination... | |||
arnsholt | From what I gather of JVM timelines, I put it at about 10 years out =p | ||
19:10
SamuraiJack__ left
|
|||
arnsholt | But then I'll try to wrap my brain around how the flattening stuff works and implement that stuff | 19:10 | |
TimToady | depends on how soon Oracle buys Microsoft... | ||
or vice versa | |||
diakopter | augh | 19:11 | |
19:13
domidumont left
|
|||
slava | TimToady: one of them buying the other will be funny ... since Ellison hates MS with a passion (stronger than mine). | 19:17 | |
perigrin | slava: but is (I assume) in a much better position to make an offer | 19:18 | |
slava | true | ||
pretty sure if Ellison bought MS, first thing he'd do is throw a chair at Balmer | 19:19 | ||
it's what I would do :D | |||
jnthn | Balmer won't be charing Microsoft for much longer, alas... :) | ||
uh, chairing | |||
darn, way to ruin the pun... | |||
diakopter | also, charring | ||
perigrin | alas? | ||
jnthn | perigrin: Well, Ellison can't throw a chair at him if he's gone... :P | 19:20 | |
lizmat | TimToady: if a coercer of a mutable class (such as KeySet) is applied on an immutable class (like Set) | ||
I guess it would be wise to *not* use any smart aliasing logic | 19:21 | ||
because it would then be very ease for someone to change an immutable Set | |||
perigrin | jnthn: never underestimate the wealth that ellison has ... once he owns microsoft all he has to do is look in their HR database for Ballmer's home address | ||
19:22
raiph left
|
|||
perigrin | because obviously that is the only thing stopping him now | 19:22 | |
19:22
teslos joined,
b^_^d joined
|
|||
TimToady | lizmat: yeah, you really, really don't want to break the immutability invariant, or nearly all optimization becomes impossible | 19:23 | |
lizmat | ok, just checking :-) | ||
b^_^d | hey everyone! | ||
TimToady looks around to see if everyone is here... | 19:24 | ||
lizmat | b^_^d: welcome, you stranger from #perl6 on irc.perl.org | ||
diakopter | not me | ||
b^_^d | lizmat: long time! :) | ||
reading lots of interesting stuff in 6guts blog! | 19:25 | ||
PerlJam | It's a shame that moarvm didn't get a name like 6guts instead ;) | 19:26 | |
TimToady imagines six impossible GUTs before breakfast... | |||
masak | o/, #perl6 | 19:27 | |
TimToady | \o | ||
lizmat | masak o/ | 19:28 | |
19:29
Bzek joined
|
|||
lizmat | colomon, TimToady: I'm keeping the :view named parameter for now | 19:38 | |
even though you can argue that the coercer returns something | 19:39 | ||
diakopter | TimToady: how many of those guts does the breakfast fill | ||
lizmat | if I by default return an immutable coercer on a mutable object | ||
like $keyset.Set | |||
there would be no guarantee that the underling KeySet is not changed, thereby violating the immutability of the object returned by the coercer | 19:40 | ||
diakopter | lizmat: lock it in another thread lololol | ||
lizmat | so inside the settings, .Set and .Bag are always called with :view, because *there* I can be sure the underlying mutable will not change | 19:43 | |
19:43
yoleaux left
19:44
yoleaux joined,
ChanServ sets mode: +v yoleaux
|
|||
diakopter | lizmat: I was only half kidding.... | 19:44 | |
lizmat | the other half will come later if that thread unblocks? :-) | ||
diakopter | no, you send that thread a signal when you're ready to unlock it | 19:45 | |
I'm just imagining a way to use a thread just for locking an object from access by the entire system, not just other threads | 19:48 | ||
solution is to have a thread in an event loop that only handles lock/unlock requests, and lock objects manage access | 19:49 | ||
19:50
pupoque joined
|
|||
dalek | kudo/nom: 19596ae | (Elizabeth Mattijsen)++ | src/core/Setty.pm: Some additional :view on .Set coercers |
19:50 | |
diakopter | via a hash of object addresses... which would need rehashed if the objects move... :) | ||
19:51
Mouq joined
19:54
stevan_ left
19:55
kaare_ left
19:56
Mouq left
20:07
EvanTeitelman joined
|
|||
dalek | rl6-roast-data: cbb541f | coke++ | / (5 files): today (automated commit) |
20:09 | |
20:12
kivutar joined
|
|||
arnsholt | jnthn: I think there's a mismatch between the Parrot box_target stuff, which supports an arbitrary number of box_targets (but only one each for int, num and str), and the way things are factored on JVM | 20:15 | |
jnthn: But my brain is kinda fried now, so I'm going to bed now and I'll try to look into it further on the morrow | |||
jnthn | arnsholt: Mine also...maybe I'll be smarter then too :) | 20:16 | |
[Coke] | n: say "{27371*.8-21697} | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«===SORRY!===Unsupported use of bare 'say'; in Perl 6 please use .say if you meant $_, or use an explicit invocant or argument at /tmp/TXr9UA0tZn line 1:------> say⏏ "{27371*.8-21697}Confused at /tmp/TXr9UA0tZn line… | ||
[Coke] | n: say "{27371*.8-21697} tests left to get to 80%" | ||
camelia | niecza v24-95-ga6d4c5f: OUTPUT«199.8 tests left to get to 80%» | ||
20:16
jeff_s1 left
|
|||
[Coke] | r: say "{27371 - 27138} tests for JVM to pass to tie parrot." | 20:17 | |
camelia | rakudo 19596a: OUTPUT«233 tests for JVM to pass to tie parrot.» | ||
20:19
zwut00 left
|
|||
lizmat | 99.15% | 20:20 | |
lue | hello world! o/ | ||
lizmat | lue /o | 20:21 | |
[Coke] | getting .VAR working, as noted previously, would be a big step. | ||
20:24
cognominal left
20:25
cognominal joined
|
|||
lue | IIUC correctly, VAR() gets you the underlying Scalar object, but it's a no-op on any kind of value and and non-scalar variables? | 20:27 | |
(do the values have to be non-scalar too or is that just unfortunate grammar on S12's part?) | 20:29 | ||
lizmat | r: say my @a.VAR | ||
camelia | rakudo 19596a: OUTPUT«===SORRY!=== Error while compiling /tmp/i5jqa4KXA7Two terms in a rowat /tmp/i5jqa4KXA7:1------> say my @a⏏.VAR expecting any of: scoped declarator constraint postfix infix stopper i… | ||
lizmat | r: my @a; say @a.VAR | 20:30 | |
camelia | rakudo 19596a: OUTPUT«» | ||
lizmat | r: my @a; say @a.VAR.WHAT | ||
camelia | rakudo 19596a: OUTPUT«(Array)» | ||
lizmat | r: my @a; say @a.VAR.default | ||
camelia | rakudo 19596a: OUTPUT«(Any)» | ||
lizmat | r: my @a is default(42); say @a.VAR.default | ||
camelia | rakudo 19596a: OUTPUT«42» | ||
lue | .oO(I'm not sure how VAR is ever useful if it can't give you the underlying Scalar of a non-Scalar object.) |
20:31 | |
r: say 42.VAR.WHAT | |||
camelia | rakudo 19596a: OUTPUT«(Int)» | ||
lue | r: say (1,2,3).VAR.WHAT | ||
20:31
jeff_s1 joined
|
|||
camelia | rakudo 19596a: OUTPUT«(Parcel)» | 20:31 | |
20:33
teslos left
|
|||
lue | Either that, or VAR's purpose is completely different from what I got out of S12's description. | 20:33 | |
Oh. /me should read the entire subsection, as opposed to just the part talking about VAR(), before complaining about being confused. | 20:35 | ||
moritz | r: say (my $).VAR | 20:36 | |
camelia | rakudo 19596a: OUTPUT«Any» | ||
moritz | r: say (my $).VAR.WHAT | ||
camelia | rakudo 19596a: OUTPUT«(Scalar)» | ||
20:36
zwut00 joined
|
|||
lue | r: my $xyzzy = 42; say $xyzzy.name; | 20:37 | |
camelia | rakudo 19596a: OUTPUT«No such method 'name' for invocant of type 'Int' in block at /tmp/q4V2Ys_hz0:1» | ||
lue | r: my $xyzzy = 42; say $xyzzy.VAR.name; | ||
camelia | rakudo 19596a: OUTPUT«$xyzzy» | ||
lue | r: my $xyzzy = 42; say VAR($xyzzy).name; | ||
camelia | rakudo 19596a: OUTPUT«===SORRY!=== Error while compiling /tmp/oeEwVuIFp8Undeclared name: VAR used at line 1» | ||
lue | known bug? | ||
lizmat | NYI rather, I think | 20:38 | |
20:38
teslos joined
|
|||
masak | aye, NYI | 20:39 | |
20:46
lichtkind left
|
|||
lizmat | isn't this LHF though ? | 20:46 | |
sub VAR ($something) { $something.VAR } | 20:47 | ||
? | |||
jnthn | \omething I would thing | ||
think | |||
Otherwise you throw away the origin container | |||
lizmat leaves LHF hanging | |||
ah, ok | 20:48 | ||
sub VAR (\a) { \a.VAR } | |||
jnthn | but yeah, it's no more involved than tha to make it work | ||
lizmat | sub VAR (\a) { a.VAR } | ||
jnthn | you only \ it on the decl | ||
right | |||
Exactly that | |||
You wrote it now. My as well commit :P | |||
lizmat | okokok | ||
jnthn | *May | ||
hehe, I'm teasing :) | |||
But still happy to have it implemented :)) | |||
lizmat | after I spectested my last Baggy change to speed up .pick and .roll for huge bags | 20:49 | |
jnthn | .oO( I like huge Bags and I cannot lie... ) |
20:50 | |
lizmat | .oO( just look under your eyes ) |
||
20:51
Ulti joined
|
|||
Ulti | is there a doc somewhere the subset of Perl6 NQP covers? | 20:52 | |
lue | shouldn't it be macro VAR (... ? Or does that not matter? | 20:54 | |
Ulti found en.wikibooks.org/wiki/Parrot_Virtua...Quite_Perl | 20:56 | ||
21:01
genehack left
|
|||
dalek | kudo/nom: 40ea141 | (Elizabeth Mattijsen)++ | src/core/Baggy.pm: Implement .pick and .roll that don't blow up for large Bags and KeyBags |
21:02 | |
ast: cf57597 | (Elizabeth Mattijsen)++ | S02-types/ (2 files): Unfudge tests that were previously taking too long |
21:03 | ||
21:03
genehack joined
21:05
skids left
21:06
bruges_ joined,
teslos left
21:07
denis_boyun left
21:08
bruges left
21:10
spider-mario left
21:11
kbaker left
21:19
riceandbeans joined
|
|||
riceandbeans | need real quick perl help | 21:19 | |
really simple | |||
metacpan.org/module/Net::Blacklist::Client | 21:20 | ||
it says new( [ARGS] ) | |||
tadzik | wow, yapcrussia is still uploading videos from YE2011 | ||
riceandbeans: that's not quite a Perl 6 module | |||
riceandbeans | if I wanted to add an argument, how would I do it? | ||
PerlJam | riceandbeans: I'm fairly sure you're in the wrong place. Try #perl | ||
riceandbeans | tadzik: no, it's not | ||
tadzik | riceandbeans: and this is a Perl 6 channel :) | ||
riceandbeans | all I want to know is how I would put the module in there | ||
err | |||
the argument | |||
dalek | kudo/nom: 252008d | (Elizabeth Mattijsen)++ | src/core/operators.pm: Temporarily implement VAR() |
21:22 | |
masak | riceandbeans: first, listen. you're in the wrong place. | ||
riceandbeans: this is #perl6. | |||
dalek | ast: 7975698 | (Elizabeth Mattijsen)++ | S06-traits/is-readonly.t: Unfudge the one VAR() test |
||
masak | lizmat++ | 21:26 | |
lizmat | I guess this just about finishes my Set/Bag work | 21:27 | |
there are still a few issues left | |||
my %h = bag(<a>) | |||
fails because it tries to put a 1 element list (the bag) into the hash | 21:28 | ||
r: my %h=bag(<a>) | |||
camelia | rakudo 40ea14: OUTPUT«Odd number of elements found where hash expected in method STORE at src/gen/CORE.setting:8376 in block at /tmp/CZ69zGiHFZ:1» | ||
lizmat | r: my %h := bag(<a>); say %h # binding works | ||
camelia | rakudo 40ea14: OUTPUT«bag(a)» | ||
lizmat | r: my %h := bag(<a>); say %h <a> # binding works | ||
camelia | rakudo 40ea14: OUTPUT«===SORRY!=== Error while compiling /tmp/ftvjwdHGhtUndeclared routines: a used at line 1 h used at line 1» | ||
lizmat | r: my %h := bag(<a>); say %h<a> # binding works | ||
camelia | rakudo 40ea14: OUTPUT«1» | ||
lizmat | the other thing is that Setty and Baggy are no longer Iterative | 21:29 | |
for the simple reason that making them iterative, breaks the currently specced behaviour | |||
there are some tests testing for .iteratior, which no longer work and are now skipped | 21:30 | ||
masak | lizmat: for some reason I find the assignment/binding distinction rhymes with my intuition. | ||
lizmat | with mine as well, but are spectests expecting a different behaviour | ||
*there are | 21:31 | ||
masak | I provisionally opine that they are in error. | ||
'night, #perl6 | |||
diakopter | 'nite masak | ||
lizmat | gnight masak | ||
and finally, there are the hyper operators, such as set(1,2,3) >>+>> 3 not yet working | 21:32 | ||
not sure how they would work, though | |||
in any case, that's the state of things Setty and Baggy right now | |||
and on that thought, I bid you all a good night! | 21:33 | ||
gnight #perl6! | |||
diakopter | g'nite lizmat | ||
21:39
PacoAir left
21:40
Mouq joined
21:44
Mouq left
21:49
sidus left
21:53
teslos joined
|
|||
riceandbeans | with cpan does everything stay in /root/.cpan/ ? | 21:53 | |
jnthn | 'night, #perl6 | ||
timotimo | so, a crapton of tests now succeed due to VAR working? :) | 22:01 | |
22:06
bluescreen10 left
22:12
Rotwang left,
EvanTeitelman left
|
|||
Ulti | if anyone is on Mac and uses MacPorts you might want to give this the once over gist.github.com/MattOates/6516514 | 22:15 | |
22:18
pupoque left
22:19
census joined,
dmol left
|
|||
Ulti | hmmm fails after building parrot | 22:20 | |
mkdir /opt/local/include/parrot: Operation not permitted at lib/Parrot/Install.pm line 186 appears to have the prefix passed through to the parrot building, maybe its lost suid? | |||
Ulti sleeps | 22:21 | ||
22:24
fridim_ joined
|
|||
geekosaur | .tell Ulti MacPorts does not build as root and can't write outside the build area | 22:27 | |
yoleaux | geekosaur: I'll pass your message to Ulti. | ||
riceandbeans | is parrot to perl what yarv is to ruby? | 22:32 | |
diakopter | riceandbeans: parrot is... | 22:33 | |
not to perl | |||
22:36
EvanTeitelman joined
|
|||
sjohnson | *awk* polly want a perl 6 *awk* | 22:57 | |
TimToady | what he *sed* | ||
sjohnson | :3 | ||
23:03
teslos left
23:07
teslos joined
23:08
btyler left
23:09
prevost left
|
|||
lue | *ack*! I feel there's a pun there, but I can't quite *grep* any of it! | 23:10 | |
TimToady doesn't *find* that funny | 23:11 | ||
sjohnson | grep funny jokes.txt || echo ':(' | 23:13 | |
23:14
krunen_ left
|
|||
lue | sjohnson: I *echo* your sentiments. People who put spaces in filenames are terrible people. | 23:18 | |
23:18
zwut00 left
|
|||
riceandbeans | shutup before I put a *finger* in your eyeball | 23:20 | |
lue | .oO(Let's find a *cd* of calming music before this fight escalates and we have to *shutdown*.) |
23:22 | |
23:24
cognominal left,
cognominal joined
|
|||
riceandbeans | I need to *locate* the button on the *top* of my terminal to end this session *at* a reasonable *time* and *date* because this is making me want to break the *display* | 23:26 | |
done | |||
diakopter | bye :) | ||
23:26
jnap left
|
|||
lue | Are you sure you wish to *exit* this punning session? | 23:27 | |
riceandbeans | lue: are you *fsck*ing kidding me? | ||
it makes me want to *kill* myself | 23:28 | ||
lue | Hey woah! I was just running a simple *[* on whether it was time to stop dragging this on :) ] | 23:29 | |
riceandbeans | don't you have a job or something? | 23:30 | |
diakopter | do you? :) | ||
TimToady | *du* you? | ||
lue | I was just trying to have a *nice* time here. | 23:31 | |
.oO(What *df*erence would it make? Anyone using linux long enough would have committed quite a few commands to memory. I think I'll *curl* into a ball and stop this now.) |
23:33 | ||
TimToady | *yes* | 23:34 | |
diakopter writes to the wall man more or less | |||
geekosaur | writes *at*, perhaps? | 23:35 | |
lue | me just now: .oO(wait, there's a yes command...) :D :D :D | ||
TimToady | tee hee | 23:36 | |
look, this is just too easy 'cuz there's so many commands | |||
lue | I was wondering where "no" was, but reading the man page for yes answered that for me. | ||
TimToady | ssh! | 23:37 | |
lue | .oO(and here I thought I would actually need to *git help* if this went on further.) |
||
TimToady | more or less | ||
lue | This session has taught me a valuable perl of wisdom: there's too much puntential in linux commands. | 23:38 | |
diakopter | zip your trap until he who sleeps returns | ||
23:39
Vlavv left
|
|||
TimToady is touched | 23:39 | ||
diakopter | rn<TAB> => rnano | ||
git'er done, he splained | 23:40 | ||
23:41
pernatiy left
|
|||
TimToady | cc señor | 23:41 | |
lue | I think it's time to clang the bell and end this. Future pun sessions are already vi-ing to overthrow this one. | 23:45 | |
diakopter | ssh | ||
TimToady | there's an echo in here | 23:46 | |
diakopter | heh | ||
TimToady | but yeah, I think we should zip it for now | ||
23:47
teslos left
23:48
teslos joined
23:51
Vlavv joined
|
|||
perigrin needs to find a different place to slocate himself. | 23:55 | ||
23:56
BenGoldberg joined
|
|||
diakopter | updatedb | 23:56 |