00:13 penk joined 00:21 vixey joined 00:23 viklund` left
meppl good night 00:26
00:29 meppl left
ruoso @tell pmurias, when I implemented new in smop_s1p_scalar other tests started failing. Then I realised that was because we were assuming that Scalar would delegate all calls to its cell. but how do we call Scalar.new? I think we need the opposite, every item supports .FETCH(), which means that everytime you want to operate with a value, you need to do the fetching... 00:32
lambdabot Consider it noted.
ruoso @tell pmurias, I think the '.' operator implies a FETCH()... $*OUT.print would translate to what today is $*OUT.FETCH.print 00:35
lambdabot Consider it noted.
ruoso @tell pmurias, I'm commiting it with a ___UNKNOWN_METHOD___ instead of the delegation in smop_s1p_scalar... it causes breakage, but the delegation is too much fragile... we should avoid it and force the "value context" where appropriate 00:38
lambdabot Consider it noted.
00:40 justatheory left
ruoso TimToady, is it sane to consider the existence of a "value context"? 00:40
pugs_svn r21662 | ruoso++ | [smop] attribute mostly implemented, tests still failing, but the code is there.
r21662 | ruoso++ | Scalar no longer delegates the calls to its cell, there should be an implicit fetch in "value context"
ruoso TimToady, as opposed to "container context"
@tell pmurias, in the end, that will mean that we will not see any explicit FETCH/STORE in the code, they would always be implicit depending on the context ('=' is probably the only STORE case, for the lvalue, but the rvalue still have a implicit FETCH in that case) 00:43
lambdabot Consider it noted.
ruoso I think we reached a very p5-like model... there isn't much sense in a value without a container, considering the features Perl 6 has... What we have different now is that we have the clear distinction of the container and the value, 00:48
but pragmatically, you always have a container, even if it's a read-only scalar container that have itself as the value 00:49
00:51 Lorn_ left 00:53 nipotaway is now known as nipotan
ruoso sleep & 00:58
01:04 penk left 01:05 penk joined 01:27 explorer left 01:30 elmex left 01:32 avar joined 01:40 kanru left 01:45 drbean left 01:58 penk left 01:59 penk joined 02:02 Limbic_Region left 02:06 bacek_ left 02:08 bacek joined 02:10 luqui joined 02:15 wknight8111_ left 02:17 Lorn joined 02:27 simcop2387 left 02:31 penk left, justatheory joined 02:35 penk joined 02:43 justatheory left 03:11 pen1 joined, penk left 03:26 kanru joined 03:29 alester joined 03:30 coumbes joined 03:33 pen1 left 03:34 penk joined 03:48 vixey left, vixey joined 03:49 luqui left 04:01 penk left 04:34 coumbes left 04:45 simcop2387 joined 05:18 Southen_ left 05:19 silug left 05:21 justatheory joined 05:24 luqui joined 05:27 justatheory left 05:40 frobnitz left 05:41 kanru left 05:48 iblechbot joined 05:56 Psyche^ joined 06:10 Patterner left, Psyche^ is now known as Patterner 06:16 kanru joined 06:17 Schwern left 06:44 ashizawa joined 07:00 jan left 07:04 jan joined 07:07 vixey left 07:10 silug joined 07:22 alanhaggai joined
zamanfou is now away: In the rain my tears are forever lost. 07:22
07:26 alester left 07:33 pmurias joined
pmurias ruoso: hi 07:34
the problem with non-delegation is that we will have a lot more method calls 07:40
it should be possible to have the scalar delegate everything, with a VAR() needed to call methods directly on it 07:46
07:46 cosimo joined 07:54 bacek left 07:56 bacek joined 07:58 explorer joined 08:09 zamolxes joined 08:14 masak joined 08:15 bacek left 08:37 zamolxes left
pugs_svn r21663 | fglock++ | [v6.pm] 0.032 08:44
08:46 kanru left 09:02 meteorjay left, meteorjay joined 09:06 fridim_ joined 09:11 explorer left
ruoso pmurias, I know it requires additional method calls... but VAR() only makes sense in a higher level, creating an additional container to allow you calling methods on the variable, because '.' would have an implicit fetch 09:30
pmurias, VAR() doesn't make sense when we are in the level "use v6 blocks" are 09:32
except we have it making all the implicit FETCH calls
ruoso waking up &
09:33 agentzh left, agentz1 joined 09:34 iblechbot left
pmurias "use v6 blocks" are in the top-most level 09:43
09:43 barney joined
pmurias their content is normal p6 09:43
(with the exception of the lexical scope faling back on the C lexical scope) 09:45
09:53 elmex joined 10:01 barney left 10:08 Jedai joined
ruoso pmurias, so in "use v6" blocks you need to add implicit FETCH on the '.' operator and other operators that imply "value context" 10:14
ruoso going to work &
ruoso later &
10:14 ruoso left 10:21 nipotan is now known as nipotaway 10:29 meppl joined 10:45 luqui left, meteorjay left 10:53 lleksah joined 10:57 smtms left 11:03 smtms joined 11:08 alanhaggai_ joined 11:22 ashizawa left, bacek joined 11:24 alanhaggai left
pmurias @tell ruoso what are your objections to the redispatching scheme? We could do it differently, a Scalar would be wrapped in an object which would just redispatch *everything* on the scalars .FETCH and the actual scalar could be retrived using VAR() 11:27
lambdabot Consider it noted.
pugs_svn r21664 | fglock++ | [v6.pm] more tests # 6500
pmurias @tell ruso VAR() could either call an internal method (if we can reserve one) or know the Scalar's RI 11:29
lambdabot Consider it noted.
pmurias @tell ruoso VAR() could either call an internal method (if we can reserve one) or know the Scalar's RI 11:32
lambdabot Consider it noted.
11:32 buubot left
pmurias lunch& 11:37
11:37 pmurias left 11:40 Alias_ joined, bacek left 11:41 buubot joined
pugs_svn r21665 | audreyt++ | * Remove unused third-party modules. 11:49
r21666 | audreyt++ | * Add Cabal, HTTP, zlib and cabal-install to third-party. 11:52
11:52 lleksah left
pugs_svn r21667 | audreyt++ | * Also add Parse::Yapp as a prereq of PCR. 11:53
r21668 | audreyt++ | * Rename Makefile.PL to Makefile.PL.old in preparation of 11:54
r21668 | audreyt++ | the new Makefile.PL overhaul.
r21669 | audreyt++ | * Replace the Pugs.cabal.in with a standalone Pugs.cabal.
r21670 | audreyt++ | * A new Makefile.PL based on cabal-install. 11:58
r21671 | audreyt++ | * Add precompile Prelude.pm and Test.pm to src/cbits/. 11:59
r21672 | audreyt++ | * src/: Delete pretty much everything factored out from Pugs proper.
r21673 | audreyt++ | * Import Pugs from Hackage into our source tree. 12:02
r21673 | audreyt++ | * Highlights:
r21673 | audreyt++ | - Much faster startup time
r21673 | audreyt++ | - Slightly faster compilation time
r21673 | audreyt++ | (mostly due to refactored Pugs.AST.Internals)
r21673 | audreyt++ | - Portable-to-Win32 readline thanks to Haskeline
12:08 sri_work joined
pugs_svn r21674 | fglock++ | [v6.pm] more tests # 6600 12:16
r21675 | audreyt++ | * Delete everything we're not actively using from src/. 12:17
moritz_ perl Makefile.PL says: 12:22
[Pugs Dependencies]
Can't exec "/bin/cabal": No such file or directory at Makefile.PL line 52.
12:23 ruoso joined
moritz_ ah well, lets see which debian package offers cabal.. 12:23
none, on stable 12:24
pugs_svn r21676 | audreyt++ | * Add back Pugs.Embed.Parrot without .hsc
moritz_ well, I'll just build on testing then...
audreyt moritz_: that message should follow by something that installs cabal for you
does it not?
ruoso good to see you around audreyt ;) 12:25
lambdabot ruoso: You have 2 new messages. '/msg lambdabot @messages' to read them.
moritz_ audreyt: nopaste.snit.ch/13713
pugs_svn r21677 | audreyt++ | * Reflect data-dir changes. 12:26
audreyt moritz_: just a sec
moritz_: try 12:27
./Setup -d
what does it say?
moritz_ Setup: No command given (try --help)
audreyt moritz_: that doesn't sound correct 12:28
try 12:29
rm Setup ; rm Setup.hi ; rm Setup.o
ghc --make -O0 -o Setup Setup.lhs
./Setup -d
ruoso @tell pmurias, the problem is that the containers are regular objects that might implement any method they want... but in fact, that brings again the "value context" × "container context"... we don't have much option except for always calling fetch...
lambdabot Consider it noted.
moritz_ /home/moritz/.cabal 12:30
and there's /home/moritz/.cabal/bin/cabal
audreyt moritz_: so now perl Makefile.PL would succed.
masak svn says "Failed to add file 'X': object of the same name already exists" sometimes. how can it not recognize one of its own files?
ruoso @tell pmurias, my $a = foo(); # in that case, foo() may or may not return a scalar... the only thing we can do is *always* call FETCH when using it as a value, and make values readonly self-containers
lambdabot Consider it noted. 12:31
ruoso @tell pmurias, then we have "container context operators", like ':='
lambdabot Consider it noted.
pugs_svn r21678 | audreyt++ | * Makefile.PL: More robust ~/.cabal detectino thanks to moritz++ 12:32
ruoso so every operator that uses "value context" implies a FETCH()
masak so, if I already have Pugs installed via Cabal, what do I do to install it in this new way?
ruoso $a.b() actually means LexPad.<$a>.FETCH().b();
moritz_ audreyt++ 12:33
audreyt masak: the new way is just automating the steps you do.
masak: so "perl Makefile.PL ; make ; sudo make install" still works
but so should simply "cabal install" from pugs dir
the difference is the first also installs the docs/ stuff and copies pugs to /usr/local/bin/pugs.
masak audreyt: ok, cool 12:34
moritz_ nopaste.snit.ch/13714
audreyt moritz_: r21679. 12:36
pugs_svn r21679 | audreyt++ | * Makefile.PL: configure before build.
masak nopaste.snit.ch/13715 12:38
audreyt masak: you may need a "cabal update". 12:40
pasteling "moritz_" at pasted "'make' output for audreyt++ (again ;)" (22 lines, 494B) at sial.org/pbot/31747
masak audreyt: gotcha.
pugs_svn r21680 | audreyt++ | * Insist on a local cabal-install even if we have a global one. 12:41
audreyt moritz_: rerun Makefile.PL? 12:42
pugs_svn r21681 | audreyt++ | * Add Prelude.hs.
audreyt moritz_: if it doesn't install all deps for you
trace line 59 of Makefile.PL and see if it actually runs. 12:43
moritz_ Resolving dependencies...
cabal: cannot configure regex-pcre-builtin- It requires base
There is no available version of base that satisfies >=3.0
audreyt uhm 12:44
what's your ghc version.
moritz_ 6.6.1-2
probabyl too old? 12:45
audreyt not exactly unworkable
but too messy at the point.
I'll up the req to 6.8 in inc/.
moritz_ ok
audreyt done. 12:46
pugs_svn r21682 | audreyt++ | * Module::Install::Pugs: We now want GHC 6.8.
r21683 | audreyt++ | * It is okay if the user had no ~/.cabal/. 12:47
r21684 | audreyt++ | * Refer to LICENSE/MIT. 12:54
masak 'cabal update' doesn't seems to actually do anything. 12:56
it downloads the package list and then exits silently
12:58 alanhaggai_ is now known as alanhaggai
audreyt yes, but then the next "caal install" would resolve using new module list 12:58
pugs_svn r21685 | audreyt++ | * Write Pugs.Config. 12:59
r21686 | audreyt++ | * Oops, add a missing "cabal update".
r21687 | audreyt++ | * Add PIR Prelude. 13:01
audreyt Ok, a fresh checkout of Pugs just built correctly on a random linux box 13:02
moritz_ holiday &
audreyt the next step (awaiting dcoutts++ and the cabal-install team)
masak audreyt: I still get 'setup: At least the following dependencies are missing: FindBin -any, haskeline >=0.2.1, pugs-compat >=0.0.5', though
audreyt is to wait for their equivalent of CPAN::Inject / CPAN::Mini
masak: does "cabal install FindBin haskeline pugs-compat" resolve things for you?
masak: the weird thing is that "perl Makefile.PL" is supposed to do that for you
ah, that's because you just did "cabal install" on pugs home dir. 13:03
kolibrie audreyt: perl Makefile.PL says: Setup.lhs:11:31: Not in scope: `autoconfUserHooks' Can't exec "./Setup": No such file or directory at Makefile.PL line 23
do I need to rm Setup ; rm Setup.hi ; rm Setup.o
audreyt kolibrie: aha. a sec. 13:04
pugs_svn r21688 | audreyt++ | * Oops, we need to bootstrap cabal. try again.
kolibrie audreyt: Linking ./Setup ... 13:05
audreyt kolibrie: r21689 should fix it.
xinming audreyt: this time, It works 13:06
pugs_svn r21689 | audreyt++ | * Allow for bootstrapping cabal.
r21690 | audreyt++ | * Final checkin for this batch - Pugs installation should now work 13:07
r21690 | audreyt++ | from scratch checkout with network connection.
r21690 | audreyt++ | Next step: offline.
r21691 | fglock++ | [v6.pm] more tests # 6900 13:08
kolibrie Setup: At least the following dependencies are missing: network -any
that will be in a ghc package?
audreyt oh. hm. 13:09
it normally is
but it is part of the "extra" package
I guess it doesn't hurt to require installation of it
(this is like finding CGI.pm not installed with perl.) 13:10
kolibrie audreyt: perhaps I should install libghc6-network-dev? 13:11
pugs_svn r21692 | audreyt++ | * Also require the "core" libraries to be installed.
audreyt kolibrie: that will do, or r21692 Makefile.PL does that for you
probably try r21692 Makefile.PL first.
kolibrie pulling
no go 13:12
pasteling "kolibrie" at pasted "network -any dependency" (15 lines, 611B) at sial.org/pbot/31748 13:13
pugs_svn r21693 | audreyt++ | * Add back "make smoke" and "make upload-smoke" targets.
audreyt oh. hm.
you need network to install HTTP
which you need to install cabal-install
which you need to install network.
a sec.
that means we need to add network, filepath, parsec to third-party. 13:14
oh, just network and parsec.
ok we do that.
xinming Global symbol "$pugs" requires explicit package name at Makefile.PL line 141. 13:16
audreyt xinming: sa sec
13:17 Lorn left
xinming I think I can fix it. :-)' 13:17
audreyt then do that :) 13:18
pugs_svn r21694 | audreyt++ | * Add network and parsec to third-party.
13:18 cmarcelo joined
audreyt cmarcelo: hi! I did your work for you :) 13:19
xinming: going to commit soon?
pugs_svn r21695 | yiyihu++ | Fixed
r21695 | yiyihu++ | Global symbol "$pugs" requires explicit package name at Makefile.PL line 141.
r21695 | yiyihu++ | in Makefile.PL
audreyt cool!
xinming audreyt: yes, I think It's fixed, But I am not sure. >_<
kolibrie xinming: that worked for me
audreyt: but I still get the network dependency 13:20
audreyt kolibrie: you need r21696 and perl Makefile.PL
cmarcelo audreyt: hello, how's going? I saw the blog :o)
pugs_svn r21696 | audreyt++ | * Solve the problem reported by kolibrie++ of lacking network and parsec.
audreyt cmarcelo: svn up and "perl Makefile.PL ; make ; make install" should work.
kolibrie audreyt: ok, looks better now 13:21
audreyt cmarcelo: I havn't yet committed the dependenies like MetaObject and HsSyck in
cmarcelo: that'll wait a couple days until the cabal-install people figure out how to make local hackage mirrors work
but otherwise pugs should install fine if you have a working network connection.
cmarcelo great! :-)
kolibrie audreyt: now when I make I get: make: /home/kolibrie/.cabal/bin/cabal: Command not found 13:24
audreyt kolibrie: hm.
kolibrie I see ~/.cabal/ 13:25
but it only has lib and share in it
audreyt that means cabal-install installation somehow failed.
try this
cd third-party/cabal-install
./Setup configure --user
./Setup build
and see what happens?
(and ./Setup install --user)
kolibrie there is no Setup there, jest Setup.hs 13:26
audreyt well then
ghc --make -O0 Setup.hs
masak now I get 'gcc-4.0: -E, -S, -save-temps and -M options are not allowed with multiple -arch flags'
audreyt masak: during "make"? nopaste your Pugs.buildinfo? 13:27
kolibrie Setup: At least the following dependencies are missing: zlib >=0.4
masak audreyt: ok, hold on
audreyt kolibrie: that means zlib has failed
do the same for third-party/zlib ?
kolibrie :)
pasteling "masak" at pasted "my Pugs.buildinfo" (6 lines, 1.3K) at sial.org/pbot/31750 13:28
masak audreyt++
audreyt oy, Universal. 13:29
13:30 pmurias joined
audreyt masak: r21697 13:30
masak :)
pugs_svn r21697 | audreyt++ | * Configure.PL: We really can't build universal binaries.
r21697 | audreyt++ | Reported by masak++
masak audreyt: same error... :/ 13:31
oops, hold on 13:32
incomplete svn up
audreyt ok
masak svn is very sensitive to files that already exist in the working copy
audreyt yes, you need to manually rm them
masak why is that? 13:33
audreyt bad design?
masak suppose so
masak has a good mind to report it as a bug to the svn people
audreyt well it's a concious design
masak ...with high severity
audreyt lest other people's file overwrites your precious not-yet-committed-but-same-named file
it could instead just report it as a conflict and offer to resolve interactively, I suppose. 13:34
masak hm
does it still complain if the files are identical>
audreyt no idea 13:35
masak now it seems to build, anyway
13:35 TJCRI joined
masak audreyt++ 13:35
13:35 jhorwitz joined
kolibrie audreyt: after installing zlib and cabal-install, I had to perl Makefile.PL, which pulled down the other dependencies. Now it is making 13:36
pugs_svn r21698 | audreyt++ | * Seeing how "svn up" on Pugs.Embed.Parrot causes "identical local file" 13:37
r21698 | audreyt++ | errors, and that Pugs.Embed.Parrot has bitrotten anyway, delete it.
r21699 | audreyt++ | * The logical consequence of r21698. 13:38
pmurias ruoso: the basic difference between your and my ways of handling containers is IMHO that you propose adding a lowlevel FETCH method call, and i assume all lowlevel method calls assume a FETCH 13:39
pugs_svn r21700 | audreyt++ | * More logical consequences.
masak FYI, src/Pugs/CodeGen/PIR, src/Pugs/Prelude.hs, amd Pugs.cabal also caused svn problems
pmurias i rm -fr them, is it ok? 13:40
masak yes
that's what you have to do.
svn-- # design decision
pmurias no big problem there, I was worried something more sinister happend
masak: is there a better way of handling this? 13:41
masak pmurias: git? :)
ruoso pmurias, which is basically the same thing... ;) "use v6" blocks would make the implicit FETCH calls directly
but Scalar would not delegate the calls 13:42
the operators would do the FETCH when needed 13:43
pmurias a ScalarWrapper
pugs_svn r21701 | audreyt++ | * Actually Pugs.cabal is still better named Pugs.cabal.in.
r21701 | audreyt++ | (To accomodate for e.g. svn versions)
pmurias i'm proposing $foo would be a delegating scalar wrapper, and VAR($foo) would be the actual Scalar 13:46
masak audreyt: now I get the multiple -arch error later during make 13:47
kolibrie audreyt++ # my pugs works!
masak namely, after [65 of 89] Compiling Pugs.Run.Perl5
audreyt masak: aw. 13:48
masak: nopaste the "make" log?
13:48 AndyAway is now known as Alester
masak audreyt: oki 13:48
pmurias my $a = foo() would be VAR(LexPad.<$a>).STORE(VAR(foo()).FETCH)
but $a.b would be just LexPad.<$a>.b() 13:49
pugs_svn r21702 | audreyt++ | * Add bytestring to third-party as well.
pasteling "masak" at pasted "make log" (82 lines, 5.5K) at sial.org/pbot/31751
pmurias ruoso: it is slightly more complex but should be faster 13:50
ruoso pmurias, which one is more complex? 13:51
oh wait...
pmurias my proposal
ruoso re-readin 13:52
pmurias re-reading to
ruoso pmurias, the problem is that you have foo().bar().baz() where foo, bar and baz might return scalars
so you always have to force "value context"
which means an implicit FETCH anyway
pmurias they would return WrappedScalars which are indistinguishable from their content 13:54
13:54 hercynium joined
pmurias so foo().bar().baz() would work regardless if scalars or values would be returned 13:55
ruoso: i can implement it as i might be describing it wrongly 13:56
ruoso but how do you call a method in the WrappedScalar?> 13:57
(in the low-level)
pmurias you mean a method on the Scalar itself or on the value? 13:58
$foo.foo would be just $foo.foo in the low-level 13:59
ruoso in the scalar itself
on the low-level
if you delegate all calls? how do you do an actual call
rhr audreyt: I got the missing zlib and HTTP when I ran Makefile.PL from r21702. repeatedly re-runnung perl Makefile.PL seems to have solved it.
ruoso the thing is that a higher level language
have implicit FETCH/STORE defined by the syntax 14:00
pmurias it turn it into the Scalar first with VAR, VAR.postcircumfix:<( )>($scalar).scalar_method
ruoso $a = $b; implies "container context" in the lvalue and "value context" in the rvalue
pmurias, but in the low-level?
in the low-level you have just two objects... the scalar and the value 14:01
pmurias three in my scheme
ruoso hmmm.... that looks strange...
pmurias it is a bit strange 14:02
ruoso I think the idea of having ro-self-containers for values is cleaner
which means that every object implements FETCH, even if it returns itself
and every operator that uses "value context" makes an implicit FETCH
and that's all
pmurias it would be impossible to read sm0p with FETCH's 14:03
ruoso we're no longer writing sm0p
we're writing "use v6" blocks
and "use v6" might make that implicit fetch calls
like... 14:04
pmurias i have to read sm0p when debugging elf's smop backend :(
ruoso heh
$a = $b means in low-level LexPad<$a>.STORE(LexPad<$b>.FETCH()) 14:05
pmurias i could try writing everything on paper to reduce debugging
ruoso hehe
14:05 Alester left
ruoso pmurias, so... do we agree? 14:09
pugs_svn r21703 | rhr++ | [INSTALL] howto build Lenny's ghc on Etch: give up 14:10
14:11 alester joined, barney joined
pmurias ruoso: i'm not really sure, i understand how to implement both schemes 14:13
ruoso pmurias, I think delegating is fragile...
pmurias do you have a example where it fails 14:14
ruoso when you want to call the scalar itself
pmurias VAR($foo)
ruoso this is high-level
pmurias we can have a low-level VAR
VAR.($foo) 14:15
ruoso why?
we don't need it
we can have the container and the valeu
and that's all
pmurias foo().bar() being foo().FETCH().bar() just feels wrong
it will hinder language interoperability 14:16
ruoso you're confusing high-level and low-level
about language interoperability... I'm not really sure that is possible as it's currently expected... 14:17
14:18 Lorn joined
pmurias ruoso: why? 14:18
ruoso: i'll look how the parrot guys are doing the Scalars 14:20
ruoso pmurias, Perl 6 Object will never be the same as a Java Object
pugs_svn r21704 | audreyt++ | * Pugs.Prelude should no longer be committed in.
14:21 macroron joined
pugs_svn r21705 | audreyt++ | * Makefile.PL: Solve the need-repeat-run-to-install-deps problem 14:23
r21706 | audreyt++ | * Pugs.Run.Perl5: Do without -cpp 14:24
ruoso pmurias, I've asked that question several times... but noone came to me with a clear solution 14:25
pugs_svn r21707 | audreyt++ | * avoid warnings.
ruoso I really think this supposed language interoperability is a major misguiding principle of the Perl 6 development 14:26
pugs_svn r21708 | audreyt++ | * Run "cabal update".
ruoso the important to me is runtime-interopeability
and in that case, SMOP has a better support than parrot
pmurias ruoso: what part of language interoperability do you think is infeasible? 14:29
ruoso the transparent integration of java Vector and Perl 6 list 14:30
there will be always a type-mapping layer
[particle] i don't see this transparency specced. is it?
masak ruoso: Java's Vector is superceded by ArrayList nowadays, btw
pmurias ruoso: a java Vector and a Perl 6 list can be the same thing 14:32
[particle] if a java Vector exposed in a perl 6 program says it does Int, i expect it to
ok, Int was a bad example for Vector
ruoso masak, you still have several List implementations and Set implementations
[particle] Serializable or whatever 14:33
pugs_svn r21709 | audreyt++ | * Sorry. bytestring does not belong in third-party.
ruoso [particle], it's not specced, but it's the general expectation
masak ruoso: yes, definitely.